# HG changeset patch # User cannam # Date 1242661443 0 # Node ID 09aba2ccd94a35f3bb017f366a732cd4e0f3ade4 # Parent 516c86946900bd7cc0c05854544c0f7deec21dad * Fix race condition diff -r 516c86946900 -r 09aba2ccd94a dsp/tempotracking/TempoTrack.cpp --- a/dsp/tempotracking/TempoTrack.cpp Thu May 14 12:45:08 2009 +0000 +++ b/dsp/tempotracking/TempoTrack.cpp Mon May 18 15:44:03 2009 +0000 @@ -4,7 +4,7 @@ QM DSP Library Centre for Digital Music, Queen Mary, University of London. - This file copyright 2005-2006 Christian Landone. + This file copyright 2005-2006 Christian Landone and Matthew Davies. All rights reserved. */ diff -r 516c86946900 -r 09aba2ccd94a thread/AsynchronousTask.h --- 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) {