Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a6c186b authored by Ady Abraham's avatar Ady Abraham
Browse files

Deprecate Looper's pollAll

pollAll is racy and can lead to ignoring wake() calls.

Bug: 14257980
Change-Id: I22b28146ff2dc026e66e076fa18e34969a1060c7
parent 42456e6a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -54,7 +54,14 @@
#include <stdint.h>
#include <sys/types.h>
#include <android/keycodes.h>

// This file is included by modules that have host support but android/looper.h is not supported
// on host. __REMOVED_IN needs to be defined in order for android/looper.h to be compiled.
#ifndef __BIONIC__
#define __REMOVED_IN(x) __attribute__((deprecated))
#endif
#include <android/looper.h>

#include <jni.h>

#if !defined(__INTRODUCED_IN)
+4 −1
Original line number Diff line number Diff line
@@ -201,8 +201,11 @@ int ALooper_pollOnce(int timeoutMillis, int* outFd, int* outEvents, void** outDa
 * Like ALooper_pollOnce(), but performs all pending callbacks until all
 * data has been consumed or a file descriptor is available with no callback.
 * This function will never return ALOOPER_POLL_CALLBACK.
 *
 * Removed in API 34 as ALooper_pollAll can swallow ALooper_wake calls.
 * Use ALooper_pollOnce instead.
 */
int ALooper_pollAll(int timeoutMillis, int* outFd, int* outEvents, void** outData);
int ALooper_pollAll(int timeoutMillis, int* outFd, int* outEvents, void** outData) __REMOVED_IN(1);

/**
 * Wakes the poll asynchronously.
+5 −0
Original line number Diff line number Diff line
@@ -45,6 +45,11 @@
 *   - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES
 */

// This file is included by modules that have host support but android/looper.h is not supported
// on host. __REMOVED_IN needs to be defined in order for android/looper.h to be compiled.
#ifndef __BIONIC__
#define __REMOVED_IN(x) __attribute__((deprecated))
#endif
#include <android/looper.h>

#include <stdbool.h>
+6 −0
Original line number Diff line number Diff line
@@ -18,7 +18,13 @@
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wconversion"

// This file is included by modules that have host support but android/looper.h is not supported
// on host. __REMOVED_IN needs to be defined in order for android/looper.h to be compiled.
#ifndef __BIONIC__
#define __REMOVED_IN(x) __attribute__((deprecated))
#endif
#include <android/looper.h>

#include <gui/DisplayEventReceiver.h>
#include <utils/Looper.h>