From d7fceb12fb848e78ddd1ebbf2f3370d2ccf55cdd Mon Sep 17 00:00:00 2001 From: Stephane Letz Date: Fri, 16 Mar 2012 22:31:38 +0100 Subject: [PATCH] Make fInit volatile in JackMessageBuffer class. --- common/JackMessageBuffer.cpp | 5 ++++- common/JackMessageBuffer.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/common/JackMessageBuffer.cpp b/common/JackMessageBuffer.cpp index 17bd6fa4..990d1288 100644 --- a/common/JackMessageBuffer.cpp +++ b/common/JackMessageBuffer.cpp @@ -171,8 +171,11 @@ int JackMessageBuffer::SetInitCallback(JackThreadInitCallback callback, void *ar /* The condition variable emulation code does not work reliably on Windows (lost signal). - So use a "hachish" way to signal/wait for the result. + So use a "hackish" way to signal/wait for the result. Probaly better in the long term : use pthread-win32 (http://sourceware.org/pthreads-win32/) + // wake msg buffer thread + fGuard.Signal() + // wait for it to be done fGuard.Wait(); */ diff --git a/common/JackMessageBuffer.h b/common/JackMessageBuffer.h index db57e220..fc0d7177 100644 --- a/common/JackMessageBuffer.h +++ b/common/JackMessageBuffer.h @@ -57,7 +57,7 @@ class JackMessageBuffer : public JackRunnableInterface private: - JackThreadInitCallback fInit; + volatile JackThreadInitCallback fInit; void* fInitArg; JackMessage fBuffers[MB_BUFFERS]; JackThread fThread;