[Beignet] [PATCH] put a mutex around gbe_program_new_from_llvm

Homer Hsing homer.xing at intel.com
Mon Nov 4 21:28:13 PST 2013


because random crash happens if without the mutex

Signed-off-by: Homer Hsing <homer.xing at intel.com>
---
 backend/src/backend/program.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp
index 281b0b8..4bece15 100644
--- a/backend/src/backend/program.cpp
+++ b/backend/src/backend/program.cpp
@@ -41,6 +41,7 @@
 #include <sstream>
 #include <iostream>
 #include <unistd.h>
+#include <mutex>
 
 /* Not defined for LLVM 3.0 */
 #if !defined(LLVM_VERSION_MAJOR)
@@ -631,7 +632,10 @@ namespace gbe {
     remove(clName.c_str());
 
     // Now build the program from llvm
+    static std::mutex gbe_mutex;
+    gbe_mutex.lock();
     gbe_program p = gbe_program_new_from_llvm(llName.c_str(), stringSize, err, errSize);
+    gbe_mutex.unlock();
     remove(llName.c_str());
     return p;
   }
-- 
1.8.3.2



More information about the Beignet mailing list