diff options
author | Pixel <pixel@nobis-crew.org> | 2012-04-06 11:40:55 -0700 |
---|---|---|
committer | Pixel <pixel@nobis-crew.org> | 2012-04-06 11:40:55 -0700 |
commit | f2cfa1707c713c7bb01d16f4c2c4d96803ea6793 (patch) | |
tree | a722f3ad52ec471520097c5bfbbf2ab8cb4e2603 /src/Task.cc | |
parent | 7fbb819bf6f590bf2337d2277f77487ef7a5ce86 (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.cc | 9 |
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); } |