summaryrefslogtreecommitdiffstats
path: root/core/java/android/server/BluetoothEventLoop.java
diff options
context:
space:
mode:
authorRobert Greenwalt <>2009-04-02 22:41:08 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-04-02 22:41:08 -0700
commit28d139fa953c0b3bf2c66d92587e5287ec4dd5ab (patch)
tree86a1b99f94c796e770240d585324205389314f11 /core/java/android/server/BluetoothEventLoop.java
parent460ae0c910e46f6aeb48316f8745be810f68b5a4 (diff)
downloadframeworks_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.java56
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) {