
    3j                        S SK r S SKrS SKrS SK JrJr  S SKJrJrJrJ	r	J
r
  S SKJrJr  S SKJr  S SKJrJrJr  S SKJr  \" S5      r\	\S\4   r\R0                  S	:  a   " S
 S\5      r\rO\\\	\S\4   /\4   rS\\   S\4S jr\ SS\S\
\   4S jj5       r\ SS\S-  S\
\ R                     4S jj5       rS\S\\   SS4S jrS\S\\   4S jr g)    N)AbstractEventLoopFuture)	AwaitableCallable	Coroutine	GeneratorIterator)contextmanager	ExitStack)Context)AnyProtocolTypeVar)
OrderedSetT      c            
           \ rS rSr S	S\S\SS\4   \SS\4   -  S\S-  S\	R                  R                  \   4S jjrSrg)
TaskFactory   N_TaskFactory__loop_TaskFactory__factory_TaskFactory__contextreturnc                    g N )selfr   r   r   s       U/home/wildlama/miniconda3/lib/python3.13/site-packages/torch/_inductor/await_utils.py__call__TaskFactory.__call__   s     .1    r   r   )__name__
__module____qualname____firstlineno__r   r   objectr   r   asynciofuturesr   r!   __static_attributes__r   r#   r    r   r      sg    
 )-		1%	1 !tV!34ytVAS7TT	1 ~		1 __##F+	1 	1r#   r   	awaitabler   c                 n    [        5        nUR                  U 5      sS S S 5        $ ! , (       d  f       g = fr   )get_looprun_until_complete)r,   loops     r    
await_syncr1       s!    	t&&y1 
s   &
4always_create_new_loopc              #   >  #     [         R                  " 5       n[
        S[         R                  S[        S    4S j5       n[
        S[        S    4S j5       n[        5        nUR                  5       (       aT  UR                  U" 5       5        UR                  U" US95        UR                  [	        UR                  5       5      5      nOdUR                  5       (       a  UR                  [	        5       5      nO5U (       a.  UR                  U" US95        UR                  [	        5       5      nUv   S S S 5        g ! [         aC  nS[        U5      ;   a.  [	        5        nUv   S S S 5        O! , (       d  f       O= f S nAg e S nAff = f! , (       d  f       g = f7f)Nz(There is no current event loop in threadr0   r   c              3   x   #     S v   [         R                  " U 5        g ! [         R                  " U 5        f = f7fr   )r)   set_event_loopr0   s    r    _restore_loopget_loop.<locals>._restore_loop3   s)     	)""4(G""4(s   : :7:c               3     #    [         R                  R                  5       n [         R                  R                  S 5         S v   [         R                  R                  U 5        g ! [         R                  R                  U 5        f = f7fr   )r)   events_get_running_loop_set_running_loop)loop_from_eventss    r    _restore_running_loop'get_loop.<locals>._restore_running_loop<   sX     ">>;;=((.	?NN,,-=>GNN,,-=>s   >B	A%  B	%!BB	r6   )r)   get_event_loopRuntimeErrorstr	_new_loopr
   r   r	   r   
is_runningenter_contextget_task_factory	is_closed)r2   r0   rer7   r>   stacks         r    r.   r.   %   sR    %%' )'')	$) ) ?8D> ? ? 
?? 5 784 89&&y1F1F1H'IJD^^&&y{3D#4 89&&y{3D
 
5  5R@
 4 
se   FD< AF!CF3	F<
F	FE-$	F-
E;	7F>FFF		F
FFtask_factoryc              #   0  #    [         R                  " 5       n[        U5      nU (       a  UR                  U 5        [         R                  " U5         Uv    [        X5        [         R                  " S 5        UR                  5         g ! [         R                  " S 5        UR                  5         f = f!  [        X5        [         R                  " S 5        UR                  5         f ! [         R                  " S 5        UR                  5         f = f= f7fr   )r)   new_event_loop_patch_loopset_task_factoryr5   _cancel_all_tasksclose)rJ   r0   taskss      r    rC   rC   R   s      !!#DEl+4 
	d*""4(JJL ""4(JJL		d*""4(JJL ""4(JJLsH   ADB4 B	 "'D	(B11D4D6C('D((DDDr0   rQ   c                    U Vs/ s H  o"R                  5       (       a  M  UPM     nnU(       d  g U H  nUR                  5         M     U R                  [        R                  " USS065        U HP  nUR                  5       (       a  M  UR                  5       c  M-  U R                  SUR                  5       US.5        MR     g s  snf )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptiontask)donecancelr/   r)   gather	cancelledrU   call_exception_handler)r0   rQ   rV   	to_cancels       r    rO   rO   h   s     #(;%$yy{%I;   	GNNINNO>>>>'''R!%!1 	  <s
   CCc           	         ^^ [         R                  " 5       mS /mS[        S -  SS 4U4S jjnS[        S -  4U4S jjnS S.S[        S[        S[
        S -  S[        R                  4UU4S	 jjjnU R                  U5        Xl        X l	        T$ )
Nfactoryr   c                    > U TS'   g Nr   r   )r^   task_factoriess    r    _set_task_factory&_patch_loop.<locals>._set_task_factory   s    #qr#   c                     > T S   $ r`   r   )ra   s   r    _get_task_factory&_patch_loop.<locals>._get_task_factory   s    a  r#   contextr0   cororh   c                <  > TS   nUc]  [         R                  S:  a  [        R                  " XUS9nO[        R                  " XS9nUR                  (       a  UR                  S	 O$[         R                  S:  a  U" XUS9nOU" X5      nTR                  U5        U$ )Nr   r   )r0   rh   r6   rg   )sysversion_infor)   Task_source_tracebackadd)r0   ri   rh   rJ   rV   ra   rQ   s        r    _safe_task_factory'_patch_loop.<locals>._safe_task_factory   s     &a(7*||DWE||D4%%** 7*#D@#D/		$r#   )
weakrefWeakSetTaskFactoryTyper   TCoror   r)   r   rN   rF   )r0   rb   re   rq   ra   rQ   s       @@r    rM   rM      s    %,__%6E486N$?T#9 $d $!5 ! #'	 4	
 
 8 	,---Lr#   )Fr   )!r)   rl   rs   r   r   collections.abcr   r   r   r   r	   
contextlibr
   r   contextvarsr   typingr   r   r   torch.utils._ordered_setr   r   rv   rm   r   ru   r1   boolr.   rC   rO   rM   r   r#   r    <module>r}      s;    
  - O O 0  ) ) / CL#tQ,w1h 1 "O 19UD!^3LMvUVO2)A, 21 2
 #() ) ) )X +/!D(g''( *
f 
:-' -Jv,> -r#   