1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#include "stdafx.h"
#include "Event.h"
namespace storm {
Event::Event() : alloc(new Data()) {}
Event::Event(const Event &o) : alloc(o.alloc) {
atomicIncrement(alloc->refs);
}
Event::~Event() {
if (atomicDecrement(alloc->refs) == 0) {
delete alloc;
}
}
void Event::deepCopy(CloneEnv *) {
// Nothing to do.
}
void Event::set() {
alloc->event.set();
}
void Event::clear() {
alloc->event.clear();
}
void Event::wait() {
alloc->event.wait();
}
Bool Event::isSet() {
return alloc->event.isSet();
}
Event::Data::Data() : refs(1) {}
}
|