changeset 1023:2c03ce058f55

6888847: TaskQueue needs release_store() for correctness on RMO machines Summary: See title. Reviewed-by: jmasa, ysr, jcoomes, iveresov, tonyp
author bobv
date Wed, 07 Oct 2009 09:48:42 -0400
parents 11d4857fe5e1
children 1ee412f7fec9
files src/share/vm/utilities/taskqueue.hpp
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/utilities/taskqueue.hpp	Wed Oct 07 10:09:57 2009 -0400
+++ b/src/share/vm/utilities/taskqueue.hpp	Wed Oct 07 09:48:42 2009 -0400
@@ -207,7 +207,7 @@
     // Actually means 0, so do the push.
     uint localBot = _bottom;
     _elems[localBot] = t;
-    _bottom = increment_index(localBot);
+    OrderAccess::release_store(&_bottom, increment_index(localBot));
     return true;
   }
   return false;
@@ -485,7 +485,7 @@
   assert((dirty_n_elems >= 0) && (dirty_n_elems < N), "n_elems out of range.");
   if (dirty_n_elems < max_elems()) {
     _elems[localBot] = t;
-    _bottom = increment_index(localBot);
+    OrderAccess::release_store(&_bottom, increment_index(localBot));
     return true;
   } else {
     return push_slow(t, dirty_n_elems);