diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-09 12:49:29 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-07-09 12:49:29 -0700 |
commit | ad921cb4a421e8caf241b977818cf0b9fd19303c (patch) | |
tree | fc6242ea5d0e091cbd7ca4062971e391b1741466 | |
parent | bda4584bf6ce5ddad0bff1b0ae32607552e0a2fc (diff) | |
parent | c52d55c5404a09a3845a322f50577fc4c125a86d (diff) | |
download | frameworks_base-ad921cb4a421e8caf241b977818cf0b9fd19303c.zip frameworks_base-ad921cb4a421e8caf241b977818cf0b9fd19303c.tar.gz frameworks_base-ad921cb4a421e8caf241b977818cf0b9fd19303c.tar.bz2 |
am c52d55c5: Merge change 6608 into donut
Merge commit 'c52d55c5404a09a3845a322f50577fc4c125a86d'
* commit 'c52d55c5404a09a3845a322f50577fc4c125a86d':
Move the watchdog timer to a separate thread...
-rw-r--r-- | packages/VpnServices/src/com/android/server/vpn/VpnService.java | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/packages/VpnServices/src/com/android/server/vpn/VpnService.java b/packages/VpnServices/src/com/android/server/vpn/VpnService.java index a60788a..22669d2 100644 --- a/packages/VpnServices/src/com/android/server/vpn/VpnService.java +++ b/packages/VpnServices/src/com/android/server/vpn/VpnService.java @@ -189,7 +189,7 @@ abstract class VpnService<E extends VpnProfile> { mServiceHelper.stop(); } catch (Throwable e) { - Log.e(TAG, "onError()", e); + Log.e(TAG, "onDisconnect()", e); onFinalCleanUp(); } } @@ -219,21 +219,28 @@ abstract class VpnService<E extends VpnProfile> { } private void waitUntilConnectedOrTimedout() { - sleep(2000); // 2 seconds - for (int i = 0; i < 60; i++) { - if (VPN_IS_UP.equals(SystemProperties.get(VPN_UP))) { - onConnected(); - return; - } - sleep(500); // 0.5 second - } + // Run this in the background thread to not block UI + new Thread(new Runnable() { + public void run() { + sleep(2000); // 2 seconds + for (int i = 0; i < 60; i++) { + if (VPN_IS_UP.equals(SystemProperties.get(VPN_UP))) { + onConnected(); + return; + } else if (mState != VpnState.CONNECTING) { + break; + } + sleep(500); // 0.5 second + } - synchronized (this) { - if (mState == VpnState.CONNECTING) { - Log.d(TAG, " connecting timed out !!"); - onError(); + synchronized (VpnService.this) { + if (mState == VpnState.CONNECTING) { + Log.d(TAG, " connecting timed out !!"); + onError(); + } + } } - } + }).start(); } private synchronized void onConnected() { |