415d8c38199e258dfce92cdb0c69e056b3b51ef8 |
|
06-Oct-2010 |
Jeff Brown <jeffbrown@google.com> |
Switch Looper back to using poll() instead of epoll(). 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
/frameworks/base/libs/utils/Looper.cpp
|
134b4ae90103a7b205cd84d0491a4868cb102a7c |
|
22-Sep-2010 |
Jeff Brown <jeffbrown@google.com> |
Looper: use pthread_once for TLS key initialization. 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
/frameworks/base/libs/utils/Looper.cpp
|
960498728904a1a6ea65171f0cfb3b41187c29ae |
|
18-Sep-2010 |
Jeff Brown <jeffbrown@google.com> |
Reduce lock thrashing in native Looper. 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
/frameworks/base/libs/utils/Looper.cpp
|
7dae0e47abb5c1fb852c10b3ba0bc6464dd76e96 |
|
17-Sep-2010 |
Jeff Brown <jeffbrown@google.com> |
Ensure input dispatcher and native looper handles EINTR. Change-Id: I0a42db5f273b9bfe4ab174e4ee65d5d852f9f6bc
/frameworks/base/libs/utils/Looper.cpp
|
4fe6c3e51be77e35f40872cdbca6c80f8f8b7ecb |
|
14-Sep-2010 |
Jeff Brown <jeffbrown@google.com> |
Replace epoll() with poll() and rename PollLoop to Looper. 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
/frameworks/base/libs/utils/Looper.cpp
|