Merge "Merge "ServiceManager: waitForService uses allowBlocking" am: b801a513d1 am: 726c374fa3" into sc-dev-plus-aosp am: 578d06c984

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1793027

Change-Id: I3ff40e03dff825dad6b890a5cea45bcb72211319
This commit is contained in:
Automerger Merge Worker
2021-08-11 17:52:26 +00:00
2 changed files with 11 additions and 12 deletions

View File

@@ -257,7 +257,12 @@ public final class ServiceManager {
* *
* @return {@code null} only if there are permission problems or fatal errors. * @return {@code null} only if there are permission problems or fatal errors.
*/ */
public static native IBinder waitForService(@NonNull String name); public static IBinder waitForService(@NonNull String name) {
return Binder.allowBlocking(waitForServiceNative(name));
}
private static native IBinder waitForServiceNative(@NonNull String name);
/** /**
* Returns the specified service from the service manager, if declared. * Returns the specified service from the service manager, if declared.

View File

@@ -29,11 +29,8 @@ namespace android {
// Native because we have a client-side wait in waitForService() and we do not // Native because we have a client-side wait in waitForService() and we do not
// want an unnecessary second copy of it. // want an unnecessary second copy of it.
static jobject android_os_ServiceManager_waitForService( static jobject android_os_ServiceManager_waitForServiceNative(JNIEnv* env, jclass /* clazzObj */,
JNIEnv *env,
jclass /* clazzObj */,
jstring serviceNameObj) { jstring serviceNameObj) {
const jchar* serviceName = env->GetStringCritical(serviceNameObj, nullptr); const jchar* serviceName = env->GetStringCritical(serviceNameObj, nullptr);
if (!serviceName) { if (!serviceName) {
jniThrowNullPointerException(env, nullptr); jniThrowNullPointerException(env, nullptr);
@@ -56,11 +53,8 @@ static jobject android_os_ServiceManager_waitForService(
static const JNINativeMethod method_table[] = { static const JNINativeMethod method_table[] = {
/* name, signature, funcPtr */ /* name, signature, funcPtr */
{ {"waitForServiceNative", "(Ljava/lang/String;)Landroid/os/IBinder;",
"waitForService", (void*)android_os_ServiceManager_waitForServiceNative},
"(Ljava/lang/String;)Landroid/os/IBinder;",
(void*)android_os_ServiceManager_waitForService
},
}; };
int register_android_os_ServiceManager(JNIEnv* env) { int register_android_os_ServiceManager(JNIEnv* env) {