Work on contended locking via 6607129 has uncovered several correctness fixes:
1a) Add missing fence() to end of os::PlatformEvent::park() on both
Linux and Solaris
1b) Add missing barrier to Parker::park() by using Atomic::xchg()
to query _counter field (barrier is now on both code paths)
on Linux only.
1c) Remove assert in java_lang_Thread::set_thread_status()
1d) Add missing fence() in ObjectMonitor::EnterI() (all platforms)
1e) Remove set of "_count = 0" in ObjectMonitor::set_owner() to
avoid race with setting of _count during inflation.
Update: forgot to include the notes section:
Notes:
1c) The java_lang_Thread::set_thread_status() change is needed for
the pending quick monitor operations. This means the change is
potentially needed for several other buckets so I put it in the
bug_fix bucket as a "common" place.