terminate: fix oversubscribe hang when waiting for other threads on same CPU to die
Change-Id: I8c4fbdd3aab9d0567ce5457a4a6405490608925d
This commit is contained in:
committed by
Dominique Martinet
parent
68c702d024
commit
6f7c428a34
@@ -1049,7 +1049,8 @@ void terminate(int rc, int sig)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
__mcs_rwlock_reader_unlock(&proc->threads_lock, &lock);
|
__mcs_rwlock_reader_unlock(&proc->threads_lock, &lock);
|
||||||
cpu_pause();
|
/* We might be waiting for another thread on same CPU */
|
||||||
|
schedule();
|
||||||
}
|
}
|
||||||
|
|
||||||
mcs_rwlock_writer_lock(&proc->threads_lock, &lock);
|
mcs_rwlock_writer_lock(&proc->threads_lock, &lock);
|
||||||
|
|||||||
Reference in New Issue
Block a user