Застрял в потоке, сдаваться - Android
У меня есть run-method
внутри моего класса, который распространяется Thread
, Codesnipp:
public void run() {
Log.i(TAG, "BEGIN mConnectedThread");
byte[] buffer = new byte[1024];
int bytes;
Log.i("INSIDE RUN: ", "STARTING LISTNING FOR INPUTSTREAM" );
// Keep listening to the InputStream while connected
while (true) {
try {
// Read from the InputStream
bytes = mmInStream.read(buffer);
//Log.d("BYTES FROM THE DEVICE: ", Integer.toString(bytes));
} catch (IOException e) {
Log.e(TAG, "disconnected", e);
break;
}
}
}
Через некоторое время LogCat выдает мне следующую ошибку:
07-27 14:51:55.860: E/dalvikvm(17271): threadid=2: stuck on threadid=1187, giving up
Я предполагаю, что это сообщение об ошибке пытается сказать мне, что поток собирается в spinlock
и делать Busy waiting
с точки зрения операционной системы. Но почему занят занят, я на самом деле что-то делаю, читаю потоки. Кто-нибудь может указать мне в правильном направлении? Спасибо!