add helper function to set 'interruptThrown'

this fixes a linker failure on cygwin 64 due to some bad
interaction between tls and shared libraries.

see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64697
This commit is contained in:
David McFarland 2017-04-21 11:28:10 -03:00
parent d35231ec60
commit 804ac52489
3 changed files with 8 additions and 3 deletions

View file

@ -259,7 +259,7 @@ int handleExceptions(const string & programName, std::function<void()> fun)
condition is discharged before we reach printMsg() condition is discharged before we reach printMsg()
below, since otherwise it will throw an (uncaught) below, since otherwise it will throw an (uncaught)
exception. */ exception. */
interruptThrown = true; setInterruptThrown();
throw; throw;
} }
} catch (Exit & e) { } catch (Exit & e) {

View file

@ -946,7 +946,12 @@ void closeOnExec(int fd)
bool _isInterrupted = false; bool _isInterrupted = false;
thread_local bool interruptThrown = false; static thread_local bool interruptThrown = false;
void setInterruptThrown()
{
interruptThrown = true;
}
void _interrupted() void _interrupted()
{ {

View file

@ -267,7 +267,7 @@ void closeOnExec(int fd);
extern bool _isInterrupted; extern bool _isInterrupted;
extern thread_local bool interruptThrown; void setInterruptThrown();
void _interrupted(); void _interrupted();