diff options
author | Jeff Brown <jeffbrown@google.com> | 2015-05-30 00:43:10 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-30 00:43:10 +0000 |
commit | 20432c237c082506cf7d45c377b778c94879b5ae (patch) | |
tree | fdce9fdd3b5a2d267063cb8465802292ba22881b /libutils | |
parent | 0a423d994a0dbd05924ae6cff702b5d4d7dd43f0 (diff) | |
parent | 18a574f715b767ee8a2f02903c883d571b42409f (diff) | |
download | system_core-20432c237c082506cf7d45c377b778c94879b5ae.zip system_core-20432c237c082506cf7d45c377b778c94879b5ae.tar.gz system_core-20432c237c082506cf7d45c377b778c94879b5ae.tar.bz2 |
Merge "Work around spurious epoll notifications." into mnc-dev
Diffstat (limited to 'libutils')
-rw-r--r-- | libutils/Looper.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libutils/Looper.cpp b/libutils/Looper.cpp index e69784d..5b0ff3a 100644 --- a/libutils/Looper.cpp +++ b/libutils/Looper.cpp @@ -567,7 +567,12 @@ int Looper::removeFd(int fd, int seq) { #endif scheduleEpollRebuildLocked(); } else { + // Some other error occurred. This is really weird because it means + // our list of callbacks got out of sync with the epoll set somehow. + // We defensively rebuild the epoll set to avoid getting spurious + // notifications with nowhere to go. ALOGE("Error removing epoll events for fd %d, errno=%d", fd, errno); + scheduleEpollRebuildLocked(); return -1; } } |