equal
deleted
inserted
replaced
45 : JavaTestThread(post), _test(test), _wrt_start(wrt_start) {}; |
45 : JavaTestThread(post), _test(test), _wrt_start(wrt_start) {}; |
46 virtual ~RCUReaderThread(){} |
46 virtual ~RCUReaderThread(){} |
47 void main_run() { |
47 void main_run() { |
48 _wrt_start->signal(); |
48 _wrt_start->signal(); |
49 while (!_exit) { |
49 while (!_exit) { |
50 GlobalCounter::critical_section_begin(this); |
50 GlobalCounter::CSContext cs_context = GlobalCounter::critical_section_begin(this); |
51 volatile TestData* test = OrderAccess::load_acquire(_test); |
51 volatile TestData* test = OrderAccess::load_acquire(_test); |
52 long value = OrderAccess::load_acquire(&test->test_value); |
52 long value = OrderAccess::load_acquire(&test->test_value); |
53 ASSERT_EQ(value, GOOD_VALUE); |
53 ASSERT_EQ(value, GOOD_VALUE); |
54 GlobalCounter::critical_section_end(this); |
54 GlobalCounter::critical_section_end(this, cs_context); |
55 { |
55 { |
56 GlobalCounter::CriticalSection cs(this); |
56 GlobalCounter::CriticalSection cs(this); |
57 volatile TestData* test = OrderAccess::load_acquire(_test); |
57 volatile TestData* test = OrderAccess::load_acquire(_test); |
58 long value = OrderAccess::load_acquire(&test->test_value); |
58 long value = OrderAccess::load_acquire(&test->test_value); |
59 ASSERT_EQ(value, GOOD_VALUE); |
59 ASSERT_EQ(value, GOOD_VALUE); |