diff options
| -rw-r--r-- | core/java/android/os/ServiceManagerNative.java | 10 | ||||
| -rw-r--r-- | services/core/jni/com_android_server_power_PowerManagerService.cpp | 9 |
2 files changed, 12 insertions, 7 deletions
diff --git a/core/java/android/os/ServiceManagerNative.java b/core/java/android/os/ServiceManagerNative.java index 7991cd46b65c..f641731fa08f 100644 --- a/core/java/android/os/ServiceManagerNative.java +++ b/core/java/android/os/ServiceManagerNative.java @@ -76,6 +76,16 @@ class ServiceManagerProxy implements IServiceManager { return mServiceManager.listServices(dumpPriority); } + public void registerForNotifications(String name, IServiceCallback cb) + throws RemoteException { + throw new RemoteException(); + } + + public void unregisterForNotifications(String name, IServiceCallback cb) + throws RemoteException { + throw new RemoteException(); + } + /** * Same as mServiceManager but used by apps. * diff --git a/services/core/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp index 73bb579bd274..4e0434873944 100644 --- a/services/core/jni/com_android_server_power_PowerManagerService.cpp +++ b/services/core/jni/com_android_server_power_PowerManagerService.cpp @@ -201,13 +201,8 @@ sp<ISystemSuspend> getSuspendHal() { sp<ISuspendControlService> getSuspendControl() { static std::once_flag suspendControlFlag; std::call_once(suspendControlFlag, [](){ - while(gSuspendControl == nullptr) { - sp<IBinder> control = - defaultServiceManager()->getService(String16("suspend_control")); - if (control != nullptr) { - gSuspendControl = interface_cast<ISuspendControlService>(control); - } - } + gSuspendControl = waitForService<ISuspendControlService>(String16("suspend_control")); + LOG_ALWAYS_FATAL_IF(gSuspendControl == nullptr); }); return gSuspendControl; } |