diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-03-29T13·08+0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-03-29T14·37+0200 |
commit | ab3ce1cc13153b2053302cdb710cb411b0b9d84e (patch) | |
tree | 1548ea7b5316f7793cdb44d0da2642dafa1d4441 /src/libutil/util.hh | |
parent | 4f34c403980e7f5ae3d5257b742af6fd6452c6cf (diff) |
Improve SIGINT handling in multi-threaded programs
The flag remembering whether an Interrupted exception was thrown is now thread-local. Thus, all threads will (eventually) throw Interrupted. Previously, one thread would throw Interrupted, and then the other threads wouldn't see that they were supposed to quit.
Diffstat (limited to 'src/libutil/util.hh')
-rw-r--r-- | src/libutil/util.hh | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libutil/util.hh b/src/libutil/util.hh index 0a72cc592263..20bd62a0e752 100644 --- a/src/libutil/util.hh +++ b/src/libutil/util.hh @@ -316,6 +316,8 @@ void restoreSIGPIPE(); extern volatile sig_atomic_t _isInterrupted; +extern thread_local bool interruptThrown; + void _interrupted(); void inline checkInterrupt() |