summaryrefslogtreecommitdiffstats
path: root/libs/utils/Looper.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Switch Looper back to using poll() instead of epoll().Jeff Brown2010-10-071-37/+254
| | | | | | | | | | | | Added a couple of micro-optimizations to avoid calling wake() unnecessarily and reduce JNI overhead slightly. Fixed a minor issue where we were not clearing the "next" field of Messages returned by the MessageQueue so the Message would hold on to its successor and potentially prevent the GC from collecting it if the message were leaked somehow. Change-Id: I488d29417ce0cdd7d0e447cda76ec978ef7f811c
* Looper: use pthread_once for TLS key initialization.Jeff Brown2010-09-211-15/+14
| | | | | | | | Also fix a Valgrind complaint by zeroing out the entire epoll event struct since otherwise the data field union would be partly uninitialized (but not in a harmful way). Change-Id: I2091ce517e87fcad7c9caf90e2c5e4854a7ca465
* Reduce lock thrashing in native Looper.Jeff Brown2010-09-171-32/+38
| | | | | | | | In the common case, there is nothing interesting happening on the native Looper besides occasional wake ups. There is no point grabbing the semaphore then. Change-Id: Ib5c426d0e158dfa37891b7ff5537b6f833592fad
* Ensure input dispatcher and native looper handles EINTR.Jeff Brown2010-09-161-4/+10
| | | | Change-Id: I0a42db5f273b9bfe4ab174e4ee65d5d852f9f6bc
* Replace epoll() with poll() and rename PollLoop to Looper.Jeff Brown2010-09-141-0/+368
As part of this change, consolidated and cleaned up the Looper API so that there are fewer distinctions between the NDK and non-NDK declarations (no need for two callback types, etc.). Removed the dependence on specific constants from sys/poll.h such as POLLIN. Instead looper.h defines events like LOOPER_EVENT_INPUT for the events that it supports. That should help make any future under-the-hood implementation changes easier. Fixed a couple of compiler warnings along the way. Change-Id: I449a7ec780bf061bdd325452f823673e2b39b6ae