diff src/os/linux/vm/os_linux.cpp @ 23660:b5f3a471e646

Merge.
author Doug Simon <doug.simon@oracle.com>
date Wed, 01 Jun 2016 00:11:44 +0200
parents dd9cc155639c 54203a323126
children f13e777eb255
line wrap: on
line diff
--- a/src/os/linux/vm/os_linux.cpp	Tue May 31 08:05:44 2016 +0200
+++ b/src/os/linux/vm/os_linux.cpp	Wed Jun 01 00:11:44 2016 +0200
@@ -5922,9 +5922,11 @@
         status = pthread_mutex_unlock(_mutex);
         assert (status == 0, "invariant");
       } else {
+        // must capture correct index before unlocking
+        int index = _cur_index;
         status = pthread_mutex_unlock(_mutex);
         assert (status == 0, "invariant");
-        status = pthread_cond_signal (&_cond[_cur_index]);
+        status = pthread_cond_signal (&_cond[index]);
         assert (status == 0, "invariant");
       }
     } else {