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

Commit fb2782d5 authored by Kevin Jeon's avatar Kevin Jeon
Browse files

Add missing JNI method to MessageQueue_ravenwood

This change adds nativeSetSkipEpollWaitForZeroTimeout to
MessageQueue_ravenwood. This is added as a no-op because the real method
changes the native MQ implementation's behavior around epoll_wait calls.

Test: atest FrameworksUtilTestsRavenwood
Bug: 435529534
Bug: 410218466
Flag: android.os.native_looper_skip_epoll_wait_for_zero_timeout
Change-Id: Iacd7866972a1ead71a2e28e722f087ca17f22a3a
parent 1f8bbc65
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import android.compat.annotation.UnsupportedAppUsage;
import android.ravenwood.annotation.RavenwoodKeepWholeClass;
import android.ravenwood.annotation.RavenwoodRedirect;
import android.ravenwood.annotation.RavenwoodRedirectionClass;
import android.ravenwood.annotation.RavenwoodReplace;
import android.ravenwood.annotation.RavenwoodThrow;
import android.util.Log;
import android.util.Printer;
@@ -146,7 +145,7 @@ public final class MessageQueue {
    private native static boolean nativeIsPolling(long ptr);
    @RavenwoodRedirect
    private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events);

    @RavenwoodRedirect
    private native static void nativeSetSkipEpollWaitForZeroTimeout(long ptr);

    MessageQueue(boolean quitAllowed) {
@@ -223,9 +222,7 @@ public final class MessageQueue {
        if (sSkipEpollWaitForZeroTimeoutInitialized) {
            return;
        }
        if (Flags.nativeLooperSkipEpollWaitForZeroTimeout()) {
        nativeSetSkipEpollWaitForZeroTimeout(ptr);
        }
        sSkipEpollWaitForZeroTimeoutInitialized = true;
    }

+4 −0
Original line number Diff line number Diff line
@@ -97,4 +97,8 @@ class MessageQueue_ravenwood {
    public static void nativeSetFileDescriptorEvents(long ptr, int fd, int events) {
        throw new UnsupportedOperationException();
    }

    public static void nativeSetSkipEpollWaitForZeroTimeout(long ptr) {
        // No-op; this method changes native MQ impl behavior and cannot be mocked here.
    }
}