diff options
Diffstat (limited to 'compiler-rt/lib/tsan/rtl/tsan_rtl.cc')
| -rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_rtl.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.cc b/compiler-rt/lib/tsan/rtl/tsan_rtl.cc index f9d21574eb3..f0dfb89b4ee 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_rtl.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.cc @@ -734,7 +734,8 @@ void ThreadIgnoreBegin(ThreadState *thr, uptr pc) { CHECK_GT(thr->ignore_reads_and_writes, 0); thr->fast_state.SetIgnoreBit(); #ifndef TSAN_GO - thr->mop_ignore_set.Add(CurrentStackId(thr, pc)); + if (!ctx->after_multithreaded_fork) + thr->mop_ignore_set.Add(CurrentStackId(thr, pc)); #endif } @@ -755,7 +756,8 @@ void ThreadIgnoreSyncBegin(ThreadState *thr, uptr pc) { thr->ignore_sync++; CHECK_GT(thr->ignore_sync, 0); #ifndef TSAN_GO - thr->sync_ignore_set.Add(CurrentStackId(thr, pc)); + if (!ctx->after_multithreaded_fork) + thr->sync_ignore_set.Add(CurrentStackId(thr, pc)); #endif } |

