summaryrefslogtreecommitdiffstats
path: root/libsensors
diff options
context:
space:
mode:
authorArve Hjønnevåg <arve@android.com>2011-11-09 17:46:11 -0800
committerArve Hjønnevåg <arve@android.com>2011-11-09 17:46:11 -0800
commit85e80ef669952286e5a8ea5ea642bc7acf4cd549 (patch)
treeeb45d47389455c490451fe4536f856010062f40b /libsensors
parente91e13d8b8d0cac4848a06f39575983d0a8762ff (diff)
downloaddevice_samsung_crespo-85e80ef669952286e5a8ea5ea642bc7acf4cd549.tar.gz
device_samsung_crespo-85e80ef669952286e5a8ea5ea642bc7acf4cd549.tar.bz2
device_samsung_crespo-85e80ef669952286e5a8ea5ea642bc7acf4cd549.zip
sensors: Retry poll on EINTR
Change-Id: I3c6090ef7b0480be63856f9c3356426c7d761777
Diffstat (limited to 'libsensors')
-rw-r--r--libsensors/sensors.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/libsensors/sensors.cpp b/libsensors/sensors.cpp
index 1dc128a..847f3ca 100644
--- a/libsensors/sensors.cpp
+++ b/libsensors/sensors.cpp
@@ -252,7 +252,9 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
// we still have some room, so try to see if we can get
// some events immediately or just wait if we don't have
// anything to return
- n = poll(mPollFds, numFds, nbEvents ? 0 : -1);
+ do {
+ n = poll(mPollFds, numFds, nbEvents ? 0 : -1);
+ } while (n < 0 && errno == EINTR);
if (n<0) {
LOGE("poll() failed (%s)", strerror(errno));
return -errno;