summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/renderer
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@digia.com>2013-10-09 12:08:43 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-15 13:13:14 +0200
commit816e7f11f192b199e62c7128efedbc63c05ffd79 (patch)
tree1757c106f13936d4444908851cdacc4725568929 /src/3rdparty/angle/src/libGLESv2/renderer
parent89c01c3242079f12421da234f2a21abfee4b71e1 (diff)
Avoid other threads blocking for Q_GLOBAL_STATIC constructor on Mac
The compiler inserts __cxa_guard_acquire, __cxa_guard_release calls around the initialization of local static objects to make the initialization thread safe. However, the implementation of _cxa_guard_acquire in Apple's libc++abi uses a global lock, which means that only one thread can initialize a local static variable at a time. This can be a problem if e.g. the constructor of the variable is blocking while waiting for another thread ... This behavior has caused issues so far in webkit and the qml debugging infrastructure. Better avoid it by using our custom lock implementation. __cxa_guard_acquire implementation: http://www.opensource.apple.com/source/libcppabi/libcppabi-24.2/src/cxa_guard.cxx Task-number: QTBUG-33967 Change-Id: I0d50531ed91ddd074aa07f61f6bf7791e23d990b Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/renderer')
0 files changed, 0 insertions, 0 deletions