* DevNotes: Add entry cgf-000006.
* thread.cc (pthread::pop_cleanup_handler): Set cancel state to disabled to avoid recursively waiting for cancel.
This commit is contained in:
		
							parent
							
								
									348b56b5a3
								
							
						
					
					
						commit
						1f99484812
					
				| 
						 | 
				
			
			@ -1,3 +1,9 @@
 | 
			
		|||
2012-05-12  Christopher Faylor  <me.cygwin2012@cgf.cx>
 | 
			
		||||
 | 
			
		||||
	* DevNotes: Add entry cgf-000006.
 | 
			
		||||
	* thread.cc (pthread::pop_cleanup_handler): Set cancel state to
 | 
			
		||||
	disabled to avoid recursively waiting for cancel.
 | 
			
		||||
 | 
			
		||||
2012-05-12  Christopher Faylor  <me.cygwin2012@cgf.cx>
 | 
			
		||||
 | 
			
		||||
	* DevNotes: Add entry cgf-000005.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,16 @@
 | 
			
		|||
2012-05-12  cgf-000006
 | 
			
		||||
 | 
			
		||||
<1.7.16>
 | 
			
		||||
- Fix hang when calling pthread_testcancel in a canceled thread.
 | 
			
		||||
  Fixes some of: http://cygwin.com/ml/cygwin/2012-05/msg00186.html
 | 
			
		||||
</1.7.16>
 | 
			
		||||
 | 
			
		||||
This should fix the first part of the reported problem in the above
 | 
			
		||||
message.  The cancel seemed to actually be working but, the fprintf
 | 
			
		||||
eventually ended up calling pthread_testcancel.  Since we'd gotten here
 | 
			
		||||
via a cancel, it tried to recursively call the cancel handler causing a
 | 
			
		||||
recursive loop.
 | 
			
		||||
 | 
			
		||||
2012-05-12  cgf-000005
 | 
			
		||||
 | 
			
		||||
<1.7.16>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,3 +9,6 @@ Bug fixes:
 | 
			
		|||
- Fix pipe creation problem which manifested as a problem creating a
 | 
			
		||||
fifo.  Fixes: http://cygwin.com/ml/cygwin/2012-05/msg00253.html
 | 
			
		||||
 | 
			
		||||
- Fix hang when calling pthread_testcancel in a canceled thread.
 | 
			
		||||
  Fixes some of: http://cygwin.com/ml/cygwin/2012-05/msg00186.html
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1057,6 +1057,9 @@ pthread::pop_cleanup_handler (int const execute)
 | 
			
		|||
 | 
			
		||||
  mutex.lock ();
 | 
			
		||||
 | 
			
		||||
  /* We will no honor cancels since the thread is exiting.  */
 | 
			
		||||
  cancelstate = PTHREAD_CANCEL_DISABLE;
 | 
			
		||||
 | 
			
		||||
  if (cleanup_stack != NULL)
 | 
			
		||||
    {
 | 
			
		||||
      __pthread_cleanup_handler *handler = cleanup_stack;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue