From 2f0eaa686e3f510f02238ac0d6526da09671dd57 Mon Sep 17 00:00:00 2001
From: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
Date: Wed, 17 Feb 2016 17:31:32 -0500
Subject: [PATCH] alsa: fix possible threading issue

An std::thread, ctor constructer, must be the last members in a class to be sure
that all previous members are initialized in class ctor before to run the thread
itself.
This may fixes random issues seen with others member accesses.

Change-Id: I7ceb0cf522236411f4a2faa34ff4f32eae0e4c13
Tuleap: #171
---
 src/media/audio/alsa/alsalayer.cpp | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/src/media/audio/alsa/alsalayer.cpp b/src/media/audio/alsa/alsalayer.cpp
index 2e73ff61dd..3f5ba8cfdf 100644
--- a/src/media/audio/alsa/alsalayer.cpp
+++ b/src/media/audio/alsa/alsalayer.cpp
@@ -36,20 +36,19 @@
 namespace ring {
 
 class AlsaThread {
-    public:
-        AlsaThread(AlsaLayer *alsa);
-        ~AlsaThread();
-        void initAudioLayer();
-        void start();
-        bool isRunning() const;
-
-    private:
-        void run();
-
-        NON_COPYABLE(AlsaThread);
-        std::thread thread_;
-        AlsaLayer* alsa_;
-        std::atomic<bool> running_;
+public:
+    AlsaThread(AlsaLayer *alsa);
+    ~AlsaThread();
+    void initAudioLayer();
+    void start();
+    bool isRunning() const;
+
+private:
+    NON_COPYABLE(AlsaThread);
+    void run();
+    AlsaLayer* alsa_;
+    std::atomic<bool> running_;
+    std::thread thread_;
 };
 
 AlsaThread::AlsaThread(AlsaLayer *alsa)
-- 
GitLab