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.
This commit is contained in:
		
							parent
							
								
									4f34c40398
								
							
						
					
					
						commit
						ab3ce1cc13
					
				
					 4 changed files with 12 additions and 14 deletions
				
			
		|  | @ -316,6 +316,8 @@ void restoreSIGPIPE(); | |||
| 
 | ||||
| extern volatile sig_atomic_t _isInterrupted; | ||||
| 
 | ||||
| extern thread_local bool interruptThrown; | ||||
| 
 | ||||
| void _interrupted(); | ||||
| 
 | ||||
| void inline checkInterrupt() | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue