< prev index next >

test/hotspot/gtest/utilities/test_lockFreeStack.cpp

Print this page

        

*** 22,32 **** */ #include "precompiled.hpp" #include "memory/allocation.inline.hpp" #include "runtime/atomic.hpp" - #include "runtime/orderAccess.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/lockFreeStack.hpp" #include "threadHelper.inline.hpp" #include "unittest.hpp" #include <new> --- 22,31 ----
*** 224,248 **** _local_processed(0), _ready(false) {} virtual void main_run() { ! OrderAccess::release_store_fence(&_ready, true); while (true) { Element* e = _from->pop(); if (e != NULL) { _to->push(*e); Atomic::inc(_processed); ++_local_processed; ! } else if (OrderAccess::load_acquire(_processed) == _process_limit) { tty->print_cr("thread %u processed " SIZE_FORMAT, _id, _local_processed); return; } } } ! bool ready() const { return OrderAccess::load_acquire(&_ready); } }; TEST_VM(LockFreeStackTest, stress) { Semaphore post; TestStack initial_stack; --- 223,247 ---- _local_processed(0), _ready(false) {} virtual void main_run() { ! Atomic::release_store_fence(&_ready, true); while (true) { Element* e = _from->pop(); if (e != NULL) { _to->push(*e); Atomic::inc(_processed); ++_local_processed; ! } else if (Atomic::load_acquire(_processed) == _process_limit) { tty->print_cr("thread %u processed " SIZE_FORMAT, _id, _local_processed); return; } } } ! bool ready() const { return Atomic::load_acquire(&_ready); } }; TEST_VM(LockFreeStackTest, stress) { Semaphore post; TestStack initial_stack;
< prev index next >