summaryrefslogtreecommitdiff
path: root/src/Task.cc
diff options
context:
space:
mode:
authorPixel <pixel@nobis-crew.org>2012-04-06 11:40:55 -0700
committerPixel <pixel@nobis-crew.org>2012-04-06 11:40:55 -0700
commitf2cfa1707c713c7bb01d16f4c2c4d96803ea6793 (patch)
treea722f3ad52ec471520097c5bfbbf2ab8cb4e2603 /src/Task.cc
parent7fbb819bf6f590bf2337d2277f77487ef7a5ce86 (diff)
Making it simplier to register a task and wait for it. Also renamed createTask to registerTask, which makes way more sense.
Diffstat (limited to 'src/Task.cc')
-rw-r--r--src/Task.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/Task.cc b/src/Task.cc
index 0a213be..f4db057 100644
--- a/src/Task.cc
+++ b/src/Task.cc
@@ -149,7 +149,14 @@ void Balau::Events::BaseEvent::doSignal() {
}
}
-Balau::Events::TaskEvent::TaskEvent(Task * taskWaited) : m_taskWaited(taskWaited), m_ack(false), m_distant(false) {
+Balau::Events::TaskEvent::TaskEvent(Task * taskWaited) : m_taskWaited(NULL), m_ack(false), m_distant(false) {
+ if (taskWaited)
+ attachToTask(taskWaited);
+}
+
+void Balau::Events::TaskEvent::attachToTask(Task * taskWaited) {
+ AAssert(!m_taskWaited, "You can't attach a TaskEvent twice.");
+ m_taskWaited = taskWaited;
ScopeLock lock(m_taskWaited->m_eventLock);
m_taskWaited->m_waitedBy.push_back(this);
}