diff options
| author | Mathias Agopian <mathias@google.com> | 2010-09-16 17:57:29 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-09-16 17:57:29 -0700 |
| commit | 8f476407bf4e6283b128532d594d44cc527e8204 (patch) | |
| tree | 37ea55074ed9b24712484683bbb13197ac035b9e /core/java/android | |
| parent | 3a35f078e75cd3f63e57b0fffbac486e12a0a933 (diff) | |
| parent | 08710dcd589432c5828cefce25e4b565b15de9a6 (diff) | |
am 08710dcd: Merge "part of fix for [3004226] Cannot end the call - Proximity sensor doesn\'t work" into gingerbread
Merge commit '08710dcd589432c5828cefce25e4b565b15de9a6' into gingerbread-plus-aosp
* commit '08710dcd589432c5828cefce25e4b565b15de9a6':
part of fix for [3004226] Cannot end the call - Proximity sensor doesn't work
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/hardware/SensorManager.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/core/java/android/hardware/SensorManager.java b/core/java/android/hardware/SensorManager.java index 76ce2f8d651d..a2710757fb03 100644 --- a/core/java/android/hardware/SensorManager.java +++ b/core/java/android/hardware/SensorManager.java @@ -447,12 +447,12 @@ public class SensorManager int accuracy = status[0]; synchronized (sListeners) { if (sensor == -1 || sListeners.isEmpty()) { - if (sensor == -1) { - // we lost the connection to the event stream. this happens - // when the last listener is removed. - Log.d(TAG, "_sensors_data_poll() failed, we bail out."); + // we lost the connection to the event stream. this happens + // when the last listener is removed or if there is an error + if (sensor == -1 && !sListeners.isEmpty()) { + // log a warning in case of abnormal termination + Log.e(TAG, "_sensors_data_poll() failed, we bail out: sensors=" + sensor); } - // we have no more listeners or polling failed, terminate the thread sensors_destroy_queue(sQueue); sQueue = 0; @@ -1101,6 +1101,7 @@ public class SensorManager if (listener == null || sensor == null) { return; } + synchronized (sListeners) { final int size = sListeners.size(); for (int i=0 ; i<size ; i++) { @@ -1122,6 +1123,7 @@ public class SensorManager if (listener == null) { return; } + synchronized (sListeners) { final int size = sListeners.size(); for (int i=0 ; i<size ; i++) { |
