Changed ConnectivityService#getServiceInstance so its a singleton.
Change-Id: I27b5688a50917b01fb2fcd1c124da77ccae226b5
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 6f23805..98394d0 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -105,7 +105,7 @@
private int mNumDnsEntries;
private boolean mTestMode;
- private static ConnectivityService sServiceInstance;
+ private static volatile ConnectivityService sServiceInstance;
private Handler mHandler;
@@ -174,11 +174,10 @@
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.