From 7323ea10cd029e0f3bcbcc1679e9b7314aa04328 Mon Sep 17 00:00:00 2001 From: Wink Saville Date: Wed, 1 Sep 2010 14:48:29 -0700 Subject: [PATCH] Changed ConnectivityService#getServiceInstance so its a singleton. Change-Id: I27b5688a50917b01fb2fcd1c124da77ccae226b5 --- .../java/com/android/server/ConnectivityService.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 6f23805c0e..98394d07df 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -105,7 +105,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { private int mNumDnsEntries; private boolean mTestMode; - private static ConnectivityService sServiceInstance; + private static volatile ConnectivityService sServiceInstance; private Handler mHandler; @@ -174,11 +174,10 @@ public class ConnectivityService extends IConnectivityManager.Stub { Looper.loop(); } - public static ConnectivityService getServiceInstance(Context context) { - ConnectivityThread thread = new ConnectivityThread(context); - thread.start(); - - synchronized (thread) { + public static synchronized ConnectivityService getServiceInstance(Context context) { + if (sServiceInstance == null) { + ConnectivityThread thread = new ConnectivityThread(context); + thread.start(); while (sServiceInstance == null) { try { // Wait until sServiceInstance has been initialized.