diff options
| author | Hung-ying Tyan <tyanh@google.com> | 2009-07-13 17:23:32 +0800 |
|---|---|---|
| committer | Hung-ying Tyan <tyanh@google.com> | 2009-07-13 17:23:32 +0800 |
| commit | fe0b0178cb2d24b8e6e1477055617bbf86a0808b (patch) | |
| tree | 0f38d46f6987bac34c74daf5dda42be2f9c85c61 /src/com/android/settings/vpn | |
| parent | 1ddccd07f744344b5248dd5418ee526f26d520dc (diff) | |
| download | packages_apps_Settings-fe0b0178cb2d24b8e6e1477055617bbf86a0808b.zip packages_apps_Settings-fe0b0178cb2d24b8e6e1477055617bbf86a0808b.tar.gz packages_apps_Settings-fe0b0178cb2d24b8e6e1477055617bbf86a0808b.tar.bz2 | |
Fix VpnSettings.StatusChecker.start()
to avoid multiple threads checking status at the same time.
Diffstat (limited to 'src/com/android/settings/vpn')
| -rw-r--r-- | src/com/android/settings/vpn/AuthenticationActor.java | 2 | ||||
| -rw-r--r-- | src/com/android/settings/vpn/VpnSettings.java | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/com/android/settings/vpn/AuthenticationActor.java b/src/com/android/settings/vpn/AuthenticationActor.java index 2584fbd..a05cfa7 100644 --- a/src/com/android/settings/vpn/AuthenticationActor.java +++ b/src/com/android/settings/vpn/AuthenticationActor.java @@ -195,8 +195,8 @@ public class AuthenticationActor implements VpnProfileActor { if (bindService(c)) { // wait for a second, let status propagate wait(c, ONE_SECOND); + mContext.unbindService(c); } - mContext.unbindService(c); } private boolean bindService(ServiceConnection c) { diff --git a/src/com/android/settings/vpn/VpnSettings.java b/src/com/android/settings/vpn/VpnSettings.java index 08dd8dd..1446164 100644 --- a/src/com/android/settings/vpn/VpnSettings.java +++ b/src/com/android/settings/vpn/VpnSettings.java @@ -932,7 +932,7 @@ public class VpnSettings extends PreferenceActivity implements // managing status check in a background thread private class StatusChecker { private Set<VpnProfile> mQueue = new HashSet<VpnProfile>(); - private boolean mPaused; + private boolean mPaused = true; private ConditionVariable mThreadCv = new ConditionVariable(); void onPause() { @@ -941,7 +941,6 @@ public class VpnSettings extends PreferenceActivity implements } synchronized void onResume() { - mPaused = false; start(); } @@ -961,7 +960,9 @@ public class VpnSettings extends PreferenceActivity implements return p; } - private void start() { + private synchronized void start() { + if (!mPaused) return; + mPaused = false; mThreadCv.close(); new Thread(new Runnable() { public void run() { |
