void CoreTest::testAtomicCounter() { AtomicCounter ac; assert (ac.value() == 0); assert (ac++ == 0); assert (ac-- == 1); assert (++ac == 1); assert (--ac == 0); ac = 2; assert (ac.value() == 2); ac = 0; assert (ac.value() == 0); AtomicCounter ac2(2); assert (ac2.value() == 2); ACTRunnable act(ac); Thread t1; Thread t2; Thread t3; Thread t4; Thread t5; t1.start(act); t2.start(act); t3.start(act); t4.start(act); t5.start(act); t1.join(); t2.join(); t3.join(); t4.join(); t5.join(); assert (ac.value() == 0); }
AtomicCounter::AtomicCounter(const AtomicCounter& counter): _counter(counter.value()) { }
AtomicCounter::AtomicCounter(const AtomicCounter& counter) { _counter.value = counter.value(); }