Merge "Everytime Bluetooth was turned off two file descriptors were not closed"

This commit is contained in:
Nick Pelly
2010-03-22 07:07:15 -07:00
committed by Android Code Review

View File

@@ -564,7 +564,10 @@ static void *eventLoopMain(void *ptr) {
NULL, NULL, NULL, NULL, NULL);
tearDownEventLoop(nat);
nat->vm->DetachCurrentThread();
shutdown(nat->controlFdR,SHUT_RDWR);
int fd = nat->controlFdR;
nat->controlFdR = 0;
close(fd);
return NULL;
}
case EVENT_LOOP_ADD:
@@ -653,9 +656,12 @@ static jboolean startEventLoopNative(JNIEnv *env, jobject object) {
done:
if (JNI_FALSE == result) {
if (nat->controlFdW || nat->controlFdR) {
shutdown(nat->controlFdW, SHUT_RDWR);
if (nat->controlFdW) {
close(nat->controlFdW);
nat->controlFdW = 0;
}
if (nat->controlFdR) {
close(nat->controlFdR);
nat->controlFdR = 0;
}
if (nat->me) env->DeleteGlobalRef(nat->me);
@@ -692,9 +698,10 @@ static void stopEventLoopNative(JNIEnv *env, jobject object) {
nat->watchData = NULL;
nat->pollDataSize = 0;
nat->pollMemberCount = 0;
shutdown(nat->controlFdW, SHUT_RDWR);
int fd = nat->controlFdW;
nat->controlFdW = 0;
nat->controlFdR = 0;
close(fd);
}
pthread_mutex_unlock(&(nat->thread_mutex));
#endif // HAVE_BLUETOOTH