mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
8029453: java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java failed by timeout
Reviewed-by: bdelsart, ddmitriev, dcubed
This commit is contained in:
parent
d32b06427d
commit
6b3f9d3d1a
1 changed files with 3 additions and 1 deletions
|
@ -5785,9 +5785,11 @@ void Parker::unpark() {
|
||||||
status = pthread_mutex_unlock(_mutex);
|
status = pthread_mutex_unlock(_mutex);
|
||||||
assert(status == 0, "invariant");
|
assert(status == 0, "invariant");
|
||||||
} else {
|
} else {
|
||||||
|
// must capture correct index before unlocking
|
||||||
|
int index = _cur_index;
|
||||||
status = pthread_mutex_unlock(_mutex);
|
status = pthread_mutex_unlock(_mutex);
|
||||||
assert(status == 0, "invariant");
|
assert(status == 0, "invariant");
|
||||||
status = pthread_cond_signal(&_cond[_cur_index]);
|
status = pthread_cond_signal(&_cond[index]);
|
||||||
assert(status == 0, "invariant");
|
assert(status == 0, "invariant");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue