Canceling the timer thread runs under lock. The thread uses the same lock to guard its timer_tracker struct access. If the timing is bad, timer_settime or timer_delete grab the lock at the same time, the timer expires. In the end, cancel waits for the thread sync while the thread waits for ther lock to be released. Fix this by not waiting for the thread sync under lock. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
		
			
				
	
	
		
			17 lines
		
	
	
		
			278 B
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			278 B
		
	
	
	
		
			Groff
		
	
	
	
	
	
| What's new:
 | |
| -----------
 | |
| 
 | |
| 
 | |
| What changed:
 | |
| -------------
 | |
| 
 | |
| 
 | |
| Bug Fixes
 | |
| ---------
 | |
| 
 | |
| - Fix a resource leak in posix timers.
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2019-03/msg00120.html
 | |
| 
 | |
| - Fix a deadlock in posix timers
 | |
|   Addresses: https://cygwin.com/ml/cygwin/2019-03/msg00158.html
 |