As part of chromium:944811, LLVM_ENABLE_THREADS was turned off, but since https://swiftshader-review.googlesource.com/c/SwiftShader/+/33484 we may invoke Reactor JIT-compilation on multiple threads. Instead of re-enabling LLVM_ENABLE_THREADS wholesale, just make ManagedStatic thread-safe. Since sys::Mutex usage is not thread-safe without LLVM_ENABLE_THREADS, use standard C++ synchronization primitives instead. Note this change only affects the Subzero JIT backend, not the LLVM JIT. Bug: chromium:950343 Change-Id: Ie70be4adb2c395459cb9bbd4f6699e0b04969c74 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/45328 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by:Nicolas Capens <nicolascapens@google.com> Reviewed-by:
Alexis Hétu <sugoi@google.com> Reviewed-by:
Antonio Maiorano <amaiorano@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| Unix | Loading commit data... | |
| Windows | Loading commit data... | |
| APInt.cpp | Loading commit data... | |
| Atomic.cpp | Loading commit data... | |
| CommandLine.cpp | Loading commit data... | |
| ConvertUTF.cpp | Loading commit data... | |
| ConvertUTFWrapper.cpp | Loading commit data... | |
| Debug.cpp | Loading commit data... | |
| Errno.cpp | Loading commit data... | |
| ErrorHandling.cpp | Loading commit data... | |
| FoldingSet.cpp | Loading commit data... | |
| Hashing.cpp | Loading commit data... | |
| Host.cpp | Loading commit data... | |
| ManagedStatic.cpp | Loading commit data... | |
| MemoryBuffer.cpp | Loading commit data... | |
| Mutex.cpp | Loading commit data... | |
| NativeFormatting.cpp | Loading commit data... | |
| Path.cpp | Loading commit data... | |
| Process.cpp | Loading commit data... | |
| Program.cpp | Loading commit data... | |
| Regex.cpp | Loading commit data... | |
| Signals.cpp | Loading commit data... | |
| SmallPtrSet.cpp | Loading commit data... | |
| SmallVector.cpp | Loading commit data... | |
| StringExtras.cpp | Loading commit data... | |
| StringMap.cpp | Loading commit data... | |
| StringRef.cpp | Loading commit data... | |
| StringSaver.cpp | Loading commit data... | |
| TargetParser.cpp | Loading commit data... | |
| Threading.cpp | Loading commit data... | |
| Timer.cpp | Loading commit data... | |
| Triple.cpp | Loading commit data... | |
| Twine.cpp | Loading commit data... | |
| circular_raw_ostream.cpp | Loading commit data... | |
| raw_os_ostream.cpp | Loading commit data... | |
| raw_ostream.cpp | Loading commit data... | |
| regcclass.h | Loading commit data... | |
| regcname.h | Loading commit data... | |
| regcomp.c | Loading commit data... | |
| regengine.inc | Loading commit data... | |
| regerror.c | Loading commit data... | |
| regex2.h | Loading commit data... | |
| regex_impl.h | Loading commit data... | |
| regexec.c | Loading commit data... | |
| regfree.c | Loading commit data... | |
| regstrlcpy.c | Loading commit data... | |
| regutils.h | Loading commit data... |