From 9e74542febd1d4ae83032ff61f0ff89d68e108bb Mon Sep 17 00:00:00 2001 From: Kimmo Hoikka Date: Tue, 16 Jun 2015 11:36:08 +0100 Subject: [PATCH] Make mutex test variables volatile to prevent potential errors cused by optimizer Change-Id: I94a455df9ef4fcca817b606220b4de2419649cd3 --- automated-tests/src/dali-devel/utc-Dali-Mutex.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/automated-tests/src/dali-devel/utc-Dali-Mutex.cpp b/automated-tests/src/dali-devel/utc-Dali-Mutex.cpp index 2911d6c..60fdaaf 100644 --- a/automated-tests/src/dali-devel/utc-Dali-Mutex.cpp +++ b/automated-tests/src/dali-devel/utc-Dali-Mutex.cpp @@ -50,10 +50,11 @@ int UtcDaliMutexSingleThread(void) namespace // for local variables to avoid name clashes { -int gGlobalValue = 0; -Mutex* gGlobalValueMutex; -bool gWorkerThreadWait = true; -enum ThreadState { INIT, RUN, LOCKING, TERMINATE } gWorkerThreadState = INIT; +// make all these volatile to pre-empt any optimization screwing up the logic +volatile int gGlobalValue = 0; +volatile bool gWorkerThreadWait = true; +volatile enum ThreadState { INIT, RUN, LOCKING, TERMINATE } gWorkerThreadState = INIT; +Mutex* volatile gGlobalValueMutex; // volatile pointer to a mutex object } void* WorkerThread1( void* ptr ) { -- 2.7.4