< prev index next >

src/hotspot/os/linux/waitBarrier_linux.cpp

Print this page
rev 53078 : 8214271: Fast primitive to wake many threads
Reviewed-by:
rev 53079 : [mq]: fix-sema

*** 47,64 **** assert(_futex_barrier == 0, "Already armed"); _futex_barrier = barrier_tag; OrderAccess::fence(); } ! void LinuxWaitBarrier::disarm() { assert(_futex_barrier != 0, "Not armed"); _futex_barrier = 0; - OrderAccess::fence(); - } - - void LinuxWaitBarrier::wake() { - assert(_futex_barrier == 0, "Not disarmed"); int s = futex(&_futex_barrier, FUTEX_WAKE_PRIVATE, INT_MAX /* wake a max of this many threads */); guarantee_with_errno(s > -1, "futex FUTEX_WAKE"); } --- 47,59 ---- assert(_futex_barrier == 0, "Already armed"); _futex_barrier = barrier_tag; OrderAccess::fence(); } ! void LinuxWaitBarrier::wake() { assert(_futex_barrier != 0, "Not armed"); _futex_barrier = 0; int s = futex(&_futex_barrier, FUTEX_WAKE_PRIVATE, INT_MAX /* wake a max of this many threads */); guarantee_with_errno(s > -1, "futex FUTEX_WAKE"); }
< prev index next >