comparison src/os/linux/vm/os_linux.cpp @ 23418:54203a323126

8029453: java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java failed by timeout Reviewed-by: bdelsart, ddmitriev, dcubed
author dholmes
date Mon, 17 Aug 2015 21:14:26 -0400
parents bbceafdc7a5f
children b5f3a471e646 626f594dffa6
comparison
equal deleted inserted replaced
23417:dae2d83e0ec2 23418:54203a323126
5920 status = pthread_cond_signal (&_cond[_cur_index]); 5920 status = pthread_cond_signal (&_cond[_cur_index]);
5921 assert (status == 0, "invariant"); 5921 assert (status == 0, "invariant");
5922 status = pthread_mutex_unlock(_mutex); 5922 status = pthread_mutex_unlock(_mutex);
5923 assert (status == 0, "invariant"); 5923 assert (status == 0, "invariant");
5924 } else { 5924 } else {
5925 // must capture correct index before unlocking
5926 int index = _cur_index;
5925 status = pthread_mutex_unlock(_mutex); 5927 status = pthread_mutex_unlock(_mutex);
5926 assert (status == 0, "invariant"); 5928 assert (status == 0, "invariant");
5927 status = pthread_cond_signal (&_cond[_cur_index]); 5929 status = pthread_cond_signal (&_cond[index]);
5928 assert (status == 0, "invariant"); 5930 assert (status == 0, "invariant");
5929 } 5931 }
5930 } else { 5932 } else {
5931 pthread_mutex_unlock(_mutex); 5933 pthread_mutex_unlock(_mutex);
5932 assert (status == 0, "invariant") ; 5934 assert (status == 0, "invariant") ;