# HG changeset patch # User dholmes # Date 1259803947 18000 # Node ID 3115100553b5fa8e4f1bec604969a37c87e3a808 # Parent 95e9083cf4a7a8923221d3708b19d9db3c2ff592# Parent 0018cf203583bdfdaa0d2d4873e204b63428ffd1 Merge diff -r 0018cf203583 -r 3115100553b5 src/os/linux/vm/os_linux.cpp --- a/src/os/linux/vm/os_linux.cpp Wed Dec 02 07:59:49 2009 -0800 +++ b/src/os/linux/vm/os_linux.cpp Wed Dec 02 20:32:27 2009 -0500 @@ -4683,6 +4683,7 @@ // Return immediately if a permit is available. if (_counter > 0) { _counter = 0 ; + OrderAccess::fence(); return ; } @@ -4725,6 +4726,7 @@ _counter = 0; status = pthread_mutex_unlock(_mutex); assert (status == 0, "invariant") ; + OrderAccess::fence(); return; } @@ -4765,6 +4767,7 @@ jt->java_suspend_self(); } + OrderAccess::fence(); } void Parker::unpark() { diff -r 0018cf203583 -r 3115100553b5 src/os/solaris/vm/os_solaris.cpp --- a/src/os/solaris/vm/os_solaris.cpp Wed Dec 02 07:59:49 2009 -0800 +++ b/src/os/solaris/vm/os_solaris.cpp Wed Dec 02 20:32:27 2009 -0500 @@ -5803,6 +5803,7 @@ // Return immediately if a permit is available. if (_counter > 0) { _counter = 0 ; + OrderAccess::fence(); return ; } @@ -5846,6 +5847,7 @@ _counter = 0; status = os::Solaris::mutex_unlock(_mutex); assert (status == 0, "invariant") ; + OrderAccess::fence(); return; } @@ -5892,6 +5894,7 @@ jt->java_suspend_self(); } + OrderAccess::fence(); } void Parker::unpark() {