Merge "VmLauncherService doesn't start a new thread for starting gRPC server" into main am: 2d927c9400

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Virtualization/+/3333933

Change-Id: I001a0d16879459cdc9ee97886ff39aee91ab2d97
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/libs/vm_launcher_lib/java/com/android/virtualization/vmlauncher/VmLauncherService.java b/libs/vm_launcher_lib/java/com/android/virtualization/vmlauncher/VmLauncherService.java
index f672b7b..b9ad4fb 100644
--- a/libs/vm_launcher_lib/java/com/android/virtualization/vmlauncher/VmLauncherService.java
+++ b/libs/vm_launcher_lib/java/com/android/virtualization/vmlauncher/VmLauncherService.java
@@ -171,34 +171,31 @@
                         return new ServerCall.Listener<ReqT>() {};
                     }
                 };
-        new Thread(
-                        () -> {
-                            try {
-                                // TODO(b/372666638): gRPC for java doesn't support vsock for now.
-                                int port = 0;
-                                mServer =
-                                        OkHttpServerBuilder.forPort(
-                                                        port, InsecureServerCredentials.create())
-                                                .intercept(interceptor)
-                                                .addService(new DebianServiceImpl(this))
-                                                .build()
-                                                .start();
+        try {
+            // TODO(b/372666638): gRPC for java doesn't support vsock for now.
+            int port = 0;
+            mServer =
+                    OkHttpServerBuilder.forPort(port, InsecureServerCredentials.create())
+                            .intercept(interceptor)
+                            .addService(new DebianServiceImpl(this))
+                            .build()
+                            .start();
+        } catch (IOException e) {
+            Log.d(TAG, "grpc server error", e);
+            return;
+        }
 
-                                // TODO(b/373533555): we can use mDNS for that.
-                                String debianServicePortFileName = "debian_service_port";
-                                File debianServicePortFile =
-                                        new File(getFilesDir(), debianServicePortFileName);
-                                try (FileOutputStream writer =
-                                        new FileOutputStream(debianServicePortFile)) {
-                                    writer.write(String.valueOf(mServer.getPort()).getBytes());
-                                } catch (IOException e) {
-                                    Log.d(TAG, "cannot write grpc port number", e);
-                                }
-                            } catch (IOException e) {
-                                Log.d(TAG, "grpc server error", e);
-                            }
-                        })
-                .start();
+        mExecutorService.execute(
+                () -> {
+                    // TODO(b/373533555): we can use mDNS for that.
+                    String debianServicePortFileName = "debian_service_port";
+                    File debianServicePortFile = new File(getFilesDir(), debianServicePortFileName);
+                    try (FileOutputStream writer = new FileOutputStream(debianServicePortFile)) {
+                        writer.write(String.valueOf(mServer.getPort()).getBytes());
+                    } catch (IOException e) {
+                        Log.d(TAG, "cannot write grpc port number", e);
+                    }
+                });
     }
 
     private void stopDebianServer() {