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:
		
							parent
							
								
									d35231ec60
								
							
						
					
					
						commit
						804ac52489
					
				
					 3 changed files with 8 additions and 3 deletions
				
			
		|  | @ -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) { | ||||||
|  |  | ||||||
|  | @ -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() | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -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(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue