Commit graph

8 commits

Author SHA1 Message Date
Kalesh Singh
d8da2af1e5 RAII style wakelocks: Add tryGet() factory method.
Wakelock acquisition can fail if suspend service is not available.
Make this clear by returning an optional value that client must
check before entering wakelock critical sections.

Bug: b/179229598
Test: Boot test on Pixel 4 device
Change-Id: Ied00fa919c20d8a30f1c40ee34a91a2a7e240689
2021-02-23 10:06:19 -05:00
Michael Sun
2ab27a5e1e Update to use new android.system.suspend.control AIDL interface
The suspend_control_aidl_interface is updated, renamed, and splitted
into android.system.suspend.control and
android.system.suspend.control.internal. Update to use the correct
interfaces.

Test: atest libpower_test
Bug: 171598743
Change-Id: I707f5cb868e6756147587e0e097e77ec50995bd4
2020-11-03 04:34:38 +00:00
Tri Vo
934f175a42 libpower: RAII wake lock implementation
Main motivation is to prevent wake lock leaks, e.g. b/133175847.

Changing power.h header breaks downstream vendor code that does C
linkage to that header b/135730848. Introduce new wakelock.h header.

Bug: 133175847
Test: boot blueline
Test: device suspends if left alone
Change-Id: I477123938ab20e954ce4d55b8588c0a116ed3882
2019-06-26 13:01:39 -07:00
Ruslan Tkhakokhov
acf23a23e7 Merged-In Revert "libpower: RAII wake lock implementation"
This reverts commit 23009bb199.

Reason for revert: Breaks the build

Change-Id: I347928c4d444f4b1ce9d79f855c171626c0214c0
2019-06-21 10:32:57 +00:00
Tri Vo
23009bb199 libpower: RAII wake lock implementation
Bug: 133175847
Test: boot blueline
Test: device suspends if left alone
Change-Id: I5a63fedabb18a9dcd510ca76303f54ec6c0b7f8c
2019-06-20 09:02:16 -07:00
Tri Vo
3714b98cf5 libpower: add error logs
Bug: 134078730
Test: libpower_test
Change-Id: I35ac20c3f075bb83e61d5fad5bcfd8a1876b0c30
2019-05-31 11:48:17 -07:00
Tri Vo
ca0b45a15e Handle concurrent exit and wake lock acquisition.
We use "-Wexit-time-destructors" and "-fno-c++-static-destructors" flags
to make sure that no static variables are destroyed at exit time.

We do this to avoid the race condition between process exit and use of
static vars when calling acquire/release_wake_lock().

Bug: 117575503
Test: libpower_test
Change-Id: I16acfeb2412685e376d8bd1069c86f60f56d215a
2018-11-28 16:04:12 -08:00
Tri Vo
18177506a7 libpower: add stress test
Test: libpower_test
Change-Id: I971e9c792d1d44a7c11b746fea880fdf28015753
2018-10-22 14:03:54 -07:00