diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-09 00:29:53 -0700 | 
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-09 00:29:53 -0700 | 
| commit | c52d55c5404a09a3845a322f50577fc4c125a86d (patch) | |
| tree | c22833a51892a1a51d3a01d7502bc8ca20788950 | |
| parent | f9b7faee88313c4daf3e3fb34203978de20b7ce0 (diff) | |
| parent | 296a182dea620230cc72e24e14b195a6b807b886 (diff) | |
| download | frameworks_base-c52d55c5404a09a3845a322f50577fc4c125a86d.zip frameworks_base-c52d55c5404a09a3845a322f50577fc4c125a86d.tar.gz frameworks_base-c52d55c5404a09a3845a322f50577fc4c125a86d.tar.bz2 | |
Merge change 6608 into donut
* changes:
  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() { | 
