ThreadPool: On exception, interrupt the other worker threads

This commit is contained in:
Eelco Dolstra 2017-09-08 15:31:24 +02:00
parent 6a888ec29a
commit b7376edf06
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
4 changed files with 14 additions and 7 deletions

View file

@ -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)