From f2cfa1707c713c7bb01d16f4c2c4d96803ea6793 Mon Sep 17 00:00:00 2001 From: Pixel Date: Fri, 6 Apr 2012 11:40:55 -0700 Subject: Making it simplier to register a task and wait for it. Also renamed createTask to registerTask, which makes way more sense. --- src/Task.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/Task.cc') 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); } -- cgit v1.2.3