VmLauncherService doesn't start a new thread for starting gRPC server

Bug: N/A
Test: Run terminal app
Change-Id: I14ccd46c6dac7fc554b4d5d8599d82bc41dc6e40
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() {