Mercurial > hg > qm-dsp
diff thread/AsynchronousTask.h @ 293:2fc2a6768777
* Fix race condition
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Mon, 18 May 2009 15:44:03 +0000 |
parents | b97f4f926f48 |
children | 6afa0e011f74 |
line wrap: on
line diff
--- a/thread/AsynchronousTask.h Thu May 14 12:45:08 2009 +0000 +++ b/thread/AsynchronousTask.h Mon May 18 15:44:03 2009 +0000 @@ -68,6 +68,7 @@ m_todo.unlock(); } void awaitTask() { + m_done.lock(); while (m_inTask) m_done.wait(); m_done.unlock(); } @@ -82,6 +83,8 @@ m_todo.wait(); } if (m_finishing) { + m_inTask = false; + m_done.signal(); break; } if (m_inTask) {