History log of /system/core/libutils/Looper.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
22dbf3947fedf988e714a4703ddf85fc41413f90 01-Mar-2017 Mathias Agopian <mathias@google.com> clean-up libutils includes

moved Foo.h as first include of Foo.cpp, and
removed redundant includes.

Made NativeHandle non virtual.


Test: run & compile
Bug: n/a

Change-Id: I37fa746cd42c9ba23aba181f84cb6c619386406a
/system/core/libutils/Looper.cpp
271a1a7cda437756e442d478eaa8aaf772be7a62 11-Jan-2017 Mark Salyzyn <salyzyn@google.com> resolve merge conflicts of a45b1d6f3 to master

Test: compile
Bug: 30465923
Change-Id: I648855539df3cfa176c6ecac19b6a562ba6feaf7
30f991f251940be3ed11566fb71139852286f68a 10-Jan-2017 Mark Salyzyn <salyzyn@google.com> liblog: use log/log.h when utilizing ALOG macros

Test: compile
Bug: 30465923
Change-Id: Id6d76510819ebd88c3f5003d00d73a0dbe85e943
/system/core/libutils/Looper.cpp
4bf372ae303796344773c68789193a3b5afd0dcd 01-Oct-2016 Mark Salyzyn <salyzyn@google.com> system/core Replace cutils/log.h with android/log.h am: 66ce3e08c5 am: eb189f147b am: 16f7786032
am: 0abff8fc61

Change-Id: I8c9d221094f0c27838e120aeb41fff276fbab4b2
66ce3e08c5632a20ea66bde6dd76397041edf034 28-Sep-2016 Mark Salyzyn <salyzyn@google.com> system/core Replace cutils/log.h with android/log.h

Should use android/log.h instead of cutils/log.h as a good example
to all others. Adjust header order to comply with Android Coding
standards.

Test: Compile
Bug: 26552300
Bug: 31289077
Change-Id: I2c9cbbbd64d8dccf2d44356361d9742e4a9b9031
/system/core/libutils/Looper.cpp
fd49e46c39b8e5e2b4b2134221eb99110b0a2d54 23-Sep-2016 Colin Cross <ccross@android.com> Merge "Fix warnings in libutils headers" am: 65a1633ec3 am: 0f79b62bf6 am: 1446cbac58
am: 28cda0bf38

Change-Id: I1190211b67e0c8d02ed1eb09c6b25401687069dd
17b5b82d64686d482e6dcf96ee54fd62234d5f27 16-Sep-2016 Colin Cross <ccross@android.com> Fix warnings in libutils headers

system/core/include is included in the global include path using
-isystem, which hides all warnings. Fix warnings in libutils
headers in preparation for moving from -isystem to -I.

- Fix implicit cast from int64_t to long in Condition.h. Remove
the __LP64__ check and always compare against LONG_MAX before
casting.
- Fix implicit cast from size_t to ssize_t in KeyedVector.h
- Fix -Wshadow-field-in-constructor warnings in Looper.h and RefBase.h
- Move destructors for MessageHandler and LooperCallback to Looper.cpp
and ReferenceRenamer and VirtualLightRefBase to RefBase.cpp to prevent
vtables in every compilation unit.
- Declare template variables in Singleton.h
- Fix old-style casts in StrongPointer.h and TypeHelpers.h
- Use template metaprogramming in TypeHelpers.h to avoid warnings on
memmove on non-trivial types.
- Add an assignment operator to key_value_pair_t to complete
rule-of-three
- Use memcpy instead of dereferencing a reinterpret_casted pointer to
treat the bits of a float or double as int32_t or int64_t
- Escape unicode sequences inside doxygen comments between \code and
\endcode
- Remove WIN32 ZD definition in Compat.h, %zd works fine with mingw
- Fix WIN32 printf warnings in Filemap.cpp
- Initialize mNullValue with 0 in LruCache.h, some of the tests use a
non-pointer type for TValue.

Test: m -j native
Bug: 31492149
Change-Id: I385a05a3ca01258e44fe3b37ef77e4aaff547b26
/system/core/libutils/Looper.cpp
48c35dbe5044ef07afda15ccc105a7018006eca6 23-Aug-2016 John Reck <jreck@google.com> Make wake() error fatal

If wake() fails to write to mWakeEventFd, the looper is
screwed. This is really a fatal, unrecoverable error,
so treat it as such.

This is possibly an explaination for the unexplained
random ANRs

Change-Id: I5af3e013493b475d8e902d8ee6340f331e5d86c8
/system/core/libutils/Looper.cpp
c68c8862f954fdd7c6cc6ebc331bba969bd06919 19-Dec-2015 Nick Kralevich <nnk@google.com> more O_CLOEXEC

Change-Id: I330aef8d6f1fc35d6649995ef312954b84dff555
/system/core/libutils/Looper.cpp
5b8ff09578e647db8575699cf46ab9f6f816f6f8 01-Jul-2015 Elliott Hughes <enh@google.com> resolved conflicts for merge of b40ebc54 to mnc-dev-plus-aosp

Change-Id: I9da05b46da2326ae21d164b137be57a9b5220f7b
6ed68cc412752e4c78755df9a1516e610ec66fa8 30-Jun-2015 Elliott Hughes <enh@google.com> Consistently use strerror in libutils.

It's easier for people to debug, and side-steps the problem that errno
values differ between architectures.

Bug: http://b/17458391
Change-Id: I1db9b2cbb653839d3936b91e37e5cff02671318a
/system/core/libutils/Looper.cpp
18a574f715b767ee8a2f02903c883d571b42409f 30-May-2015 Jeff Brown <jeffbrown@google.com> Work around spurious epoll notifications.

Sometimes it seems like we can get into a situation where we are
unable to remove an fd from the epoll set but it keeps sending us
events anyhow. Defensively rebuild the epoll set in this case
to prevent us from spinning forever.

Bug: 21271428
Change-Id: I5607e565f2e12460d7113a1f62a70d38d334e271
/system/core/libutils/Looper.cpp
8892ce6383c7aa3e18107b94889882a0374de69f 26-Mar-2015 Tim Kilbourn <tkilbourn@google.com> Use eventfd instead of pipe in Looper.

Bug: 19933224
Change-Id: I6611e918db960bbb0e74f8308e10bdf79510b899
/system/core/libutils/Looper.cpp
e7d54f80cb686026d5b0974a4b1c1ba1d4ebff64 13-Mar-2015 Jeff Brown <jeffbrown@google.com> Fix issues related to removing Looper callbacks after close.

When a file descriptor is closed before removing it from the
epoll set, it will normally be removed automatically from the
epoll set by the kernel. However if there exists a duplicate
then the original file descriptor may remain in the set and
continue to receive events until all duplicates have been closed.

Unfortunately due to kernel limitations we need to rebuild the epoll
set from scratch because it may contain an old file handle that we are
now unable to remove since its file descriptor is no longer valid.
No such problem would have occurred if we were using the poll system
call instead, but that approach carries others disadvantages.

Bug: 19715279
Change-Id: If1ab8ebda0825755a416d513e888942a02ee3948
/system/core/libutils/Looper.cpp
7a0310ef678edcf06acfd230617c427a788e58f8 11-Mar-2015 Jeff Brown <jeffbrown@google.com> Fixed subtle bugs related to file descriptor recycling.

Added code to protect against situations that may occur when a
Looper callback has the side-effect of closing the file descriptor that
it is watching before it returns. This code pattern is very
convenient for implementation but it does expose issues in how
the list of callbacks is maintained. In particular, we
need to watch out for file descriptors which have been reused.

This change may resolve previously unexplained ANRs associated with
log messages such as: "Error modifying epoll events for fd 44, errno=2"

Bug: 10349083
Change-Id: I20eedf6ffbdeda382653ca0104962505194741b0
/system/core/libutils/Looper.cpp
27e5721860142b1b20081b535c55e7917366385f 26-Feb-2015 Jeff Brown <jeffbrown@google.com> Rename Looper::isIdling() to isPolling() to resolve confusion.

The loop isn't technically idle at this time, it's just checking
whether any file descriptors have pending events. However it's
still a good signal as to whether the loop is alive.

Bug: 19532373
Change-Id: I555c473e70ffd8a56e1b10aa60026eb674a16de9
/system/core/libutils/Looper.cpp
1693d7e48f976c2615100378c7e98d245e0213be 12-Dec-2013 Brian Carlstrom <bdc@google.com> Make libutils Looper independent of frameworks/native

Change-Id: I1dacca10a3cd7601abc3451b69ed761bf71c38fe
/system/core/libutils/Looper.cpp
d98e07fdf9c338589f263c47ce5c844ed43efad5 02-Aug-2013 Alex Ray <aray@google.com> move libs/utils to libutils

Change-Id: I6cf4268599460791414882f91eeb88a992fbd29d
/system/core/libutils/Looper.cpp