diff options
Diffstat (limited to 'src/libutil/util.hh')
-rw-r--r-- | src/libutil/util.hh | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libutil/util.hh b/src/libutil/util.hh index 30e3c0df1c1a..6a66576e96ce 100644 --- a/src/libutil/util.hh +++ b/src/libutil/util.hh @@ -273,13 +273,16 @@ void closeOnExec(int fd); extern bool _isInterrupted; +extern thread_local std::function<bool()> interruptCheck; + void setInterruptThrown(); void _interrupted(); void inline checkInterrupt() { - if (_isInterrupted) _interrupted(); + if (_isInterrupted || (interruptCheck && interruptCheck())) + _interrupted(); } MakeError(Interrupted, BaseError) |