diff options
author | Nick Vaccaro <nvaccaro@google.com> | 2016-07-19 10:34:00 -0700 |
---|---|---|
committer | Nick Vaccaro <nvaccaro@google.com> | 2016-07-19 16:43:21 -0700 |
commit | 877af59f24fb50fa0f5a3454ba79f382e614cf20 (patch) | |
tree | 60fd24d9cb59403b7845a8cdb5016030692cc688 | |
parent | 9de98af266ab4b15a539950da67dfa3b1cfaadf8 (diff) | |
download | libhardware-877af59f24fb50fa0f5a3454ba79f382e614cf20.tar.gz |
DO NOT MERGE ANYWHERE Sensors: MultiHal: ignore errors from poll calls
MultiHal was not properly fielding errors from the poll() calls of
sub-HALs. Propagating errors received from sub-HALs up to Sensor
Services causes Sensor Services to abort, so instead of propagating
the error up to Sensor Services, the MultiHal logs a message to
logcat to fix the sub-HAL problem.
Bug: 30060537
Change-Id: I6e20c193a2f2d228da48cf3d5a23e439eaf663df
-rw-r--r-- | modules/sensors/multihal.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/sensors/multihal.cpp b/modules/sensors/multihal.cpp index d1536f48..6536882f 100644 --- a/modules/sensors/multihal.cpp +++ b/modules/sensors/multihal.cpp @@ -155,7 +155,11 @@ void *writerTask(void* ptr) { ALOGV("writerTask before poll() - bufferSize = %d", bufferSize); eventsPolled = device->poll(device, buffer, bufferSize); ALOGV("writerTask poll() got %d events.", eventsPolled); - if (eventsPolled == 0) { + if (eventsPolled <= 0) { + if (eventsPolled < 0) { + ALOGV("writerTask ignored error %d from %s", eventsPolled, device->common.module->name); + ALOGE("ERROR: Fix %s so it does not return error from poll()", device->common.module->name); + } continue; } pthread_mutex_lock(&queue_mutex); |