[compiler-rt] r204809 - tsan: fix deadlock during fork
Dmitry Vyukov
dvyukov at google.com
Wed Mar 26 07:13:31 PDT 2014
Author: dvyukov
Date: Wed Mar 26 09:13:31 2014
New Revision: 204809
URL: http://llvm.org/viewvc/llvm-project?rev=204809&view=rev
Log:
tsan: fix deadlock during fork
ReportRace takes the two mutexes in the opposite order
Modified:
compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc
Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc?rev=204809&r1=204808&r2=204809&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.cc Wed Mar 26 09:13:31 2014
@@ -324,18 +324,18 @@ int Finalize(ThreadState *thr) {
#ifndef TSAN_GO
void ForkBefore(ThreadState *thr, uptr pc) {
- ctx->report_mtx.Lock();
ctx->thread_registry->Lock();
+ ctx->report_mtx.Lock();
}
void ForkParentAfter(ThreadState *thr, uptr pc) {
- ctx->thread_registry->Unlock();
ctx->report_mtx.Unlock();
+ ctx->thread_registry->Unlock();
}
void ForkChildAfter(ThreadState *thr, uptr pc) {
- ctx->thread_registry->Unlock();
ctx->report_mtx.Unlock();
+ ctx->thread_registry->Unlock();
uptr nthread = 0;
ctx->thread_registry->GetNumberOfThreads(0, 0, &nthread /* alive threads */);
More information about the llvm-commits
mailing list