mirror of
				https://github.com/python/cpython.git
				synced 2025-11-01 06:01:29 +00:00 
			
		
		
		
	gh-113848: Handle CancelledError subclasses in asyncio TaskGroup() and timeout() (GH-113850)
This commit is contained in:
		
							parent
							
								
									5273655bea
								
							
						
					
					
						commit
						a5db6a3351
					
				
					 3 changed files with 13 additions and 7 deletions
				
			
		|  | @ -73,8 +73,10 @@ async def __aexit__(self, et, exc, tb): | |||
|                 self._base_error is None): | ||||
|             self._base_error = exc | ||||
| 
 | ||||
|         propagate_cancellation_error = \ | ||||
|             exc if et is exceptions.CancelledError else None | ||||
|         if et is not None and issubclass(et, exceptions.CancelledError): | ||||
|             propagate_cancellation_error = exc | ||||
|         else: | ||||
|             propagate_cancellation_error = None | ||||
|         if self._parent_cancel_requested: | ||||
|             # If this flag is set we *must* call uncancel(). | ||||
|             if self._parent_task.uncancel() == 0: | ||||
|  | @ -133,7 +135,7 @@ async def __aexit__(self, et, exc, tb): | |||
|         if propagate_cancellation_error and not self._errors: | ||||
|             raise propagate_cancellation_error | ||||
| 
 | ||||
|         if et is not None and et is not exceptions.CancelledError: | ||||
|         if et is not None and not issubclass(et, exceptions.CancelledError): | ||||
|             self._errors.append(exc) | ||||
| 
 | ||||
|         if self._errors: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Serhiy Storchaka
						Serhiy Storchaka