diff options
author | Robert Greenwalt <> | 2009-04-02 22:41:08 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-04-02 22:41:08 -0700 |
commit | 28d139fa953c0b3bf2c66d92587e5287ec4dd5ab (patch) | |
tree | 86a1b99f94c796e770240d585324205389314f11 /core/java/android/server/BluetoothEventLoop.java | |
parent | 460ae0c910e46f6aeb48316f8745be810f68b5a4 (diff) | |
download | frameworks_base-28d139fa953c0b3bf2c66d92587e5287ec4dd5ab.zip frameworks_base-28d139fa953c0b3bf2c66d92587e5287ec4dd5ab.tar.gz frameworks_base-28d139fa953c0b3bf2c66d92587e5287ec4dd5ab.tar.bz2 |
AI 144392: am: CL 144241 Stop polling dbus.
Original author: rgreenwalt
Automated import of CL 144392
Diffstat (limited to 'core/java/android/server/BluetoothEventLoop.java')
-rw-r--r-- | core/java/android/server/BluetoothEventLoop.java | 56 |
1 files changed, 13 insertions, 43 deletions
diff --git a/core/java/android/server/BluetoothEventLoop.java b/core/java/android/server/BluetoothEventLoop.java index 11c297c..8cc229b 100644 --- a/core/java/android/server/BluetoothEventLoop.java +++ b/core/java/android/server/BluetoothEventLoop.java @@ -111,57 +111,27 @@ class BluetoothEventLoop { return mPasskeyAgentRequestData; } - private synchronized boolean waitForAndDispatchEvent(int timeout_ms) { - return waitForAndDispatchEventNative(timeout_ms); - } - private native boolean waitForAndDispatchEventNative(int timeout_ms); + private native void startEventLoopNative(); + private native void stopEventLoopNative(); + private native boolean isEventLoopRunningNative(); - /* package */ synchronized void start() { + /* package */ void start() { - if (mThread != null) { - // Already running. - return; + if (!isEventLoopRunningNative()) { + if (DBG) log("Starting Event Loop thread"); + startEventLoopNative(); } - mThread = new Thread("Bluetooth Event Loop") { - @Override - public void run() { - try { - if (setUpEventLoopNative()) { - mStarted = true; - while (!mInterrupted) { - waitForAndDispatchEvent(0); - sleep(500); - } - } - // tear down even in the error case to clean - // up anything we started to setup - tearDownEventLoopNative(); - } catch (InterruptedException e) { } - if (DBG) log("Event Loop thread finished"); - mThread = null; - } - }; - if (DBG) log("Starting Event Loop thread"); - mInterrupted = false; - mThread.start(); } - private native boolean setUpEventLoopNative(); - private native void tearDownEventLoopNative(); - public synchronized void stop() { - if (mThread != null) { - mInterrupted = true; - try { - mThread.join(); - mThread = null; - } catch (InterruptedException e) { - Log.i(TAG, "Interrupted waiting for Event Loop thread to join"); - } + public void stop() { + if (isEventLoopRunningNative()) { + if (DBG) log("Stopping Event Loop thread"); + stopEventLoopNative(); } } - public synchronized boolean isEventLoopRunning() { - return mThread != null && mStarted; + public boolean isEventLoopRunning() { + return isEventLoopRunningNative(); } /*package*/ void onModeChanged(String bluezMode) { |