# HG changeset patch # User bobv # Date 1254923322 14400 # Node ID 2c03ce058f550e65501b823800c3937850422c32 # Parent 11d4857fe5e120d65731d08a5cbdd5dd4ebf47eb 6888847: TaskQueue needs release_store() for correctness on RMO machines Summary: See title. Reviewed-by: jmasa, ysr, jcoomes, iveresov, tonyp diff -r 11d4857fe5e1 -r 2c03ce058f55 src/share/vm/utilities/taskqueue.hpp --- 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);