play-audio: Fix 64-bit build
authorFredrik Fornwall <fredrik@fornwall.net>
Mon, 4 Jan 2016 01:46:21 +0000 (20:46 -0500)
committerFredrik Fornwall <fredrik@fornwall.net>
Mon, 4 Jan 2016 01:46:21 +0000 (20:46 -0500)
PTHREAD_MUTEX_INITIALIZER and PTHREAD_COND_INITIALIZER should only
be used for statically allocated mutexes - not doing it here breaks
building on 64-bit Android.

packages/play-audio/play-audio.cpp

index 2d20b43..38f092e 100644 (file)
@@ -32,7 +32,11 @@ class AudioPlayer {
 
 class MutexWithCondition {
        public:
-               MutexWithCondition() { pthread_mutex_lock(&mutex); }
+               MutexWithCondition() {
+                       pthread_mutex_init(&mutex, NULL);
+                       pthread_cond_init(&condition, NULL);
+                       pthread_mutex_lock(&mutex);
+               }
                ~MutexWithCondition() { pthread_mutex_unlock(&mutex); }
                void waitFor() { while (!occurred) pthread_cond_wait(&condition, &mutex); }
                /** From waking thread. */
@@ -44,8 +48,8 @@ class MutexWithCondition {
                }
        private:
                volatile bool occurred{false};
-               pthread_mutex_t mutex{PTHREAD_MUTEX_INITIALIZER};
-               pthread_cond_t condition{PTHREAD_COND_INITIALIZER};
+               pthread_mutex_t mutex;
+               pthread_cond_t condition;
 };
 
 AudioPlayer::AudioPlayer() {