File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -605,8 +605,16 @@ def __next__(self) -> Any:
605605 raise
606606
607607 def close (self ) -> None :
608- self ._end_span ()
609- self .generator .close ()
608+ tokens = []
609+ try :
610+ if self .context :
611+ for var , value in self .context .items ():
612+ tokens .append ((var , var .set (value )))
613+ self ._end_span ()
614+ self .generator .close ()
615+ finally :
616+ for var , token in tokens :
617+ var .reset (token )
610618
611619
612620class _ContextPreservedAsyncGeneratorWrapper :
@@ -687,5 +695,13 @@ async def __anext__(self) -> Any:
687695 raise
688696
689697 async def aclose (self ) -> None :
690- self ._end_span ()
691- await self .generator .aclose ()
698+ tokens = []
699+ try :
700+ if self .context :
701+ for var , value in self .context .items ():
702+ tokens .append ((var , var .set (value )))
703+ self ._end_span ()
704+ await self .generator .aclose ()
705+ finally :
706+ for var , token in tokens :
707+ var .reset (token )
You can’t perform that action at this time.
0 commit comments