diff options
Diffstat (limited to 'lldb/tools/driver/Driver.cpp')
| -rw-r--r-- | lldb/tools/driver/Driver.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lldb/tools/driver/Driver.cpp b/lldb/tools/driver/Driver.cpp index ba00411..733331f 100644 --- a/lldb/tools/driver/Driver.cpp +++ b/lldb/tools/driver/Driver.cpp @@ -902,9 +902,10 @@ int main(int argc, char const *argv[]) { } #if !defined(_WIN32) - signal_loop.AddPendingCallback( - [](MainLoopBase &loop) { loop.RequestTermination(); }); - signal_thread.join(); + // Try to interrupt the signal thread. If that succeeds, wait for it to exit. + if (signal_loop.AddPendingCallback( + [](MainLoopBase &loop) { loop.RequestTermination(); })) + signal_thread.join(); #endif return exit_code; |
