OSDN Git Service

Fix a race condition in NativeDaemonConnector
authoranga <anga@syntronic.com>
Tue, 1 Feb 2011 13:10:25 +0000 (14:10 +0100)
committerBrad Fitzpatrick <bradfitz@android.com>
Mon, 7 Feb 2011 17:53:59 +0000 (09:53 -0800)
Fixes a race between the onDaemonConnected callback and setting the
mOutputStream in NativeDaemonConnector.

MountService connects to vold using the NativeDaemonConnector.
Throws a â€śNativeDaemonConnectorException: No output stream!”
when the onDaemonConnected callback in MountService calls the doListCommand.

Change-Id: Ib895bab37f7df680e4362df6366198c0a673c5e9

services/java/com/android/server/NativeDaemonConnector.java

index 7b68d68..c0c6c36 100644 (file)
@@ -97,11 +97,12 @@ final class NativeDaemonConnector implements Runnable {
                     LocalSocketAddress.Namespace.RESERVED);
 
             socket.connect(address);
-            mCallbacks.onDaemonConnected();
 
             InputStream inputStream = socket.getInputStream();
             mOutputStream = socket.getOutputStream();
 
+            mCallbacks.onDaemonConnected();
+
             byte[] buffer = new byte[BUFFER_SIZE];
             int start = 0;