am 1f6cf5fa: Merge "Re-use existing thread" into jb-mr1.1-dev

* commit '1f6cf5fade6021c1ce788541ec4a60ee36d20651':
  Re-use existing thread
This commit is contained in:
Irfan Sheriff
2012-11-07 16:46:31 -08:00
committed by Android Git Automerger

View File

@@ -508,6 +508,10 @@ public class WifiManager {
private Messenger mWifiServiceMessenger;
private final CountDownLatch mConnected = new CountDownLatch(1);
private static Object sThreadRefLock = new Object();
private static int sThreadRefCount;
private static HandlerThread sHandlerThread;
/**
* Create a new WifiManager instance.
* Applications will almost always want to use
@@ -1365,9 +1369,14 @@ public class WifiManager {
return;
}
HandlerThread t = new HandlerThread("WifiManager");
t.start();
mHandler = new ServiceHandler(t.getLooper());
synchronized (sThreadRefLock) {
if (++sThreadRefCount == 1) {
sHandlerThread = new HandlerThread("WifiManager");
sHandlerThread.start();
}
}
mHandler = new ServiceHandler(sHandlerThread.getLooper());
mAsyncChannel.connect(mContext, mHandler, mWifiServiceMessenger);
try {
mConnected.await();
@@ -1983,8 +1992,10 @@ public class WifiManager {
protected void finalize() throws Throwable {
try {
if (mHandler != null && mHandler.getLooper() != null) {
mHandler.getLooper().quit();
synchronized (sThreadRefLock) {
if (--sThreadRefCount == 0 && sHandlerThread != null) {
sHandlerThread.getLooper().quit();
}
}
} finally {
super.finalize();