< prev index next >
src/hotspot/share/utilities/singleWriterSynchronizer.cpp
Print this page
*** 42,52 ****
// Wait until all threads that entered a critical section before
// synchronization have exited that critical section.
void SingleWriterSynchronizer::synchronize() {
// Side-effect in assert balanced by debug-only dec at end.
! assert(Atomic::add(1u, &_writers) == 1u, "multiple writers");
// We don't know anything about the muxing between this invocation
// and invocations in other threads. We must start with the latest
// _enter polarity, else we could clobber the wrong _exit value on
// the first iteration. So fence to ensure everything here follows
// whatever muxing was used.
--- 42,52 ----
// Wait until all threads that entered a critical section before
// synchronization have exited that critical section.
void SingleWriterSynchronizer::synchronize() {
// Side-effect in assert balanced by debug-only dec at end.
! assert(Atomic::add(&_writers, 1u) == 1u, "multiple writers");
// We don't know anything about the muxing between this invocation
// and invocations in other threads. We must start with the latest
// _enter polarity, else we could clobber the wrong _exit value on
// the first iteration. So fence to ensure everything here follows
// whatever muxing was used.
< prev index next >