8029453: java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java failed by timeout

Mon, 17 Aug 2015 21:14:26 -0400

author
dholmes
date
Mon, 17 Aug 2015 21:14:26 -0400
changeset 8065
54203a323126
parent 8064
dae2d83e0ec2
child 8066
7985a33bac9c

8029453: java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java failed by timeout
Reviewed-by: bdelsart, ddmitriev, dcubed

src/os/linux/vm/os_linux.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/os/linux/vm/os_linux.cpp	Mon Aug 17 15:44:58 2015 +0100
     1.2 +++ b/src/os/linux/vm/os_linux.cpp	Mon Aug 17 21:14:26 2015 -0400
     1.3 @@ -5922,9 +5922,11 @@
     1.4          status = pthread_mutex_unlock(_mutex);
     1.5          assert (status == 0, "invariant");
     1.6        } else {
     1.7 +        // must capture correct index before unlocking
     1.8 +        int index = _cur_index;
     1.9          status = pthread_mutex_unlock(_mutex);
    1.10          assert (status == 0, "invariant");
    1.11 -        status = pthread_cond_signal (&_cond[_cur_index]);
    1.12 +        status = pthread_cond_signal (&_cond[index]);
    1.13          assert (status == 0, "invariant");
    1.14        }
    1.15      } else {

mercurial