diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2017-03-27 18:21:31 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2017-03-27 18:21:31 +0000 |
commit | 1856ceed8271162e7ee6c0655de693840472cf7a (patch) | |
tree | f9688d9e2591d8d8583134e4a3956c457de01670 /llvm/lib/Support/ToolOutputFile.cpp | |
parent | 70d8ca9276510103beb947b8ba7b365a69a2b863 (diff) | |
download | bcm5719-llvm-1856ceed8271162e7ee6c0655de693840472cf7a.tar.gz bcm5719-llvm-1856ceed8271162e7ee6c0655de693840472cf7a.zip |
[Support] Avoid concurrency hazard in signal handler registration
Several static functions from the signal API can be invoked
simultaneously; RemoveFileOnSignal for instance can be called indirectly
by multiple parallel loadModule() invocations, which might lead to
the assertion:
Assertion failed: (NumRegisteredSignals < array_lengthof(RegisteredSignalInfo) && "Out of space for signal handlers!"),
function RegisterHandler, file /llvm/lib/Support/Unix/Signals.inc, line 105.
RemoveFileOnSignal calls RegisterHandlers(), which isn't currently
mutex protected, leading to the behavior above. This potentially affect
a few other users of RegisterHandlers() too.
rdar://problem/30381224
llvm-svn: 298871
Diffstat (limited to 'llvm/lib/Support/ToolOutputFile.cpp')
0 files changed, 0 insertions, 0 deletions