§
    ¸)ýfC"  ã                   óz  — d Z dZddlmZ ddlZddlZddlZddlZddlZddl	Z	 ej
        ¦   «         Zda ej        ¦   «         Zd„ Z ej        e¦  «          ee	d¦  «        r" e	j        ej        ej        ej        ¬¦  «          G d	„ d
e¦  «        Zd„ Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        ZdS )zImplements ThreadPoolExecutor.z"Brian Quinlan (brian@sweetapp.com)é    )Ú_baseNFc                  ó  — t           5  dad d d ¦  «         n# 1 swxY w Y   t          t                               ¦   «         ¦  «        } | D ]\  }}|                     d ¦  «         Œ| D ]\  }}|                     ¦   «          Œd S ©NT)Ú_global_shutdown_lockÚ	_shutdownÚlistÚ_threads_queuesÚitemsÚputÚjoin)r
   ÚtÚqs      úe/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/concurrent/futures/thread.pyÚ_python_exitr      sË   € å	ð ð Øˆ	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å•×&Ò&Ñ(Ô(Ñ)Ô)€EØð ð ‰ˆˆ1Ø	�Šˆd‰ŒˆˆØð ð ‰ˆˆ1Ø	�Š‰Œˆˆðð s   ˆ—žÚregister_at_fork)ÚbeforeÚafter_in_childÚafter_in_parentc                   ó:   — e Zd Zd„ Zd„ Z eej        ¦  «        ZdS )Ú	_WorkItemc                 ó>   — || _         || _        || _        || _        d S ©N)ÚfutureÚfnÚargsÚkwargs)Úselfr   r   r   r   s        r   Ú__init__z_WorkItem.__init__/   s"   € ØˆŒØˆŒØˆŒ	ØˆŒˆˆó    c                 ó  — | j                              ¦   «         sd S 	  | j        | j        i | j        ¤Ž}| j                              |¦  «         d S # t          $ r'}| j                              |¦  «         d } Y d }~d S d }~ww xY wr   )r   Úset_running_or_notify_cancelr   r   r   Ú
set_resultÚBaseExceptionÚset_exception)r   ÚresultÚexcs      r   Úrunz_WorkItem.run5   s¢   € ØŒ{×7Ò7Ñ9Ô9ð 	ØˆFð	+Ø�T”W˜dœiÐ7¨4¬;Ð7Ð7ˆFð ŒK×"Ò" 6Ñ*Ô*Ð*Ð*Ð*øõ ð 	ð 	ð 	ØŒK×%Ò% cÑ*Ô*Ð*àˆDˆDˆDˆDˆDˆDˆDøøøøð	øøøs   �A Á
BÁA<Á<BN)	Ú__name__Ú
__module__Ú__qualname__r   r'   ÚclassmethodÚtypesÚGenericAliasÚ__class_getitem__© r   r   r   r   .   sC   € € € € € ðð ð ð+ð +ð +ð $˜ EÔ$6Ñ7Ô7ÐÐÐr   r   c                 ó@  — |�Y	  ||Ž  nR# t           $ rE t          j                             dd¬¦  «          | ¦   «         }|�|                     ¦   «          Y d S w xY w	 	 |                     d¬¦  «        }|�<|                     ¦   «          ~ | ¦   «         }|�|j                             ¦   «          ~ŒU | ¦   «         }t          s	|�|j	        r |�d|_	        | 
                    d ¦  «         d S ~Œ�# t           $ r% t          j                             dd¬¦  «         Y d S w xY w)NzException in initializer:T)Úexc_info)ÚblockzException in worker)r#   r   ÚLOGGERÚcriticalÚ_initializer_failedÚgetr'   Ú_idle_semaphoreÚreleaser   r   )Úexecutor_referenceÚ
work_queueÚinitializerÚinitargsÚexecutorÚ	work_items         r   Ú_workerr?   E   s€  € ØÐð	ØˆK˜Ð"Ð"Ð"øÝð 	ð 	ð 	ÝŒL×!Ò!Ð"=ÈÐ!ÑMÔMÐMØ)Ð)Ñ+Ô+ˆHØÐ#Ø×,Ò,Ñ.Ô.Ð.ØˆFˆFð	øøøðDð	Ø"Ÿš¨T˜Ñ2Ô2ˆIØÐ$Ø—’‘”�àð .Ð-Ñ/Ô/�ØÐ'ØÔ,×4Ò4Ñ6Ô6Ð6ØØà)Ð)Ñ+Ô+ˆHõ
 ð ˜HÐ,°Ô0BÐ,ð Ð'Ø)-�HÔ&à—’˜tÑ$Ô$Ð$Ø�Øð7	øõ8 ð Dð Dð DÝŒ×ÒÐ3¸dÐÑCÔCÐCÐCÐCÐCðDøøøs)   „
 ŠAAÁAÁBC. Ã,C. Ã.+DÄDc                   ó   — e Zd ZdZdS )ÚBrokenThreadPoolzR
    Raised when a worker thread in a ThreadPoolExecutor failed initializing.
    N)r(   r)   r*   Ú__doc__r/   r   r   rA   rA   p   s   € € € € € ðð ð ð r   rA   c                   óº   — e Zd Z ej        ¦   «         j        Z	 	 dd„Zd„ Ze	j
        j        j        e_        d„ Zd„ Zdd	d
œd„Ze	j
        j        j        e_        dS )ÚThreadPoolExecutorNÚ r/   c                 óú  — |€&t          dt          j        ¦   «         pddz   ¦  «        }|dk    rt          d¦  «        ‚|�t	          |¦  «        st          d¦  «        ‚|| _        t          j        ¦   «         | _	        t          j        d¦  «        | _        t          ¦   «         | _        d| _        d| _        t          j        ¦   «         | _        |pd	|                      ¦   «         z  | _        || _        || _        dS )
a•  Initializes a new ThreadPoolExecutor instance.

        Args:
            max_workers: The maximum number of threads that can be used to
                execute the given calls.
            thread_name_prefix: An optional name prefix to give our threads.
            initializer: A callable used to initialize worker threads.
            initargs: A tuple of arguments to pass to the initializer.
        Né    é   é   r   z"max_workers must be greater than 0zinitializer must be a callableFzThreadPoolExecutor-%d)ÚminÚosÚ	cpu_countÚ
ValueErrorÚcallableÚ	TypeErrorÚ_max_workersÚqueueÚSimpleQueueÚ_work_queueÚ	threadingÚ	Semaphorer7   ÚsetÚ_threadsÚ_brokenr   ÚLockÚ_shutdown_lockÚ_counterÚ_thread_name_prefixÚ_initializerÚ	_initargs)r   Úmax_workersÚthread_name_prefixr;   r<   s        r   r   zThreadPoolExecutor.__init__{   sð   € ð Ðõ ˜b¥2¤<¡>¤>Ð#6°Q¸!Ñ";Ñ<Ô<ˆKØ˜!ÒÐÝÐAÑBÔBÐBàÐ"­8°KÑ+@Ô+@Ð"ÝÐ<Ñ=Ô=Ð=à'ˆÔÝ Ô,Ñ.Ô.ˆÔÝ(Ô2°1Ñ5Ô5ˆÔÝ™œˆŒØˆŒØˆŒÝ'œnÑ.Ô.ˆÔØ$6ð %PØ%<¸t¿}º}¹¼Ñ%Nð 	Ô à'ˆÔØ!ˆŒˆˆr   c                óÔ  — | j         5  t          5  | j        rt          | j        ¦  «        ‚| j        rt          d¦  «        ‚t          rt          d¦  «        ‚t          j        ¦   «         }t          ||||¦  «        }| j	         
                    |¦  «         |                      ¦   «          |cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz*cannot schedule new futures after shutdownz6cannot schedule new futures after interpreter shutdown)rZ   r   rX   rA   r   ÚRuntimeErrorr   ÚFuturer   rS   r   Ú_adjust_thread_count)r   r   r   r   ÚfÚws         r   ÚsubmitzThreadPoolExecutor.submit¡   s‘  € ØÔ ð 	ð 	Õ"7ð 	ð 	ØŒ|ð 5Ý& t¤|Ñ4Ô4Ð4àŒ~ð QÝ"Ð#OÑPÔPÐPÝð ;Ý"ð $:ñ ;ô ;ð ;õ ”‘”ˆAÝ˜!˜R  vÑ.Ô.ˆAàÔ× Ò  Ñ#Ô#Ð#Ø×%Ò%Ñ'Ô'Ð'Øð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s5   ˆC�BCÂ,CÃC		Ã	CÃC		ÃCÃC!Ã$C!c                 ó°  — | j                              d¬¦  «        rd S | j        fd„}t          | j        ¦  «        }|| j        k     r�d| j        p| |fz  }t          j        |t          t          j        | |¦  «        | j        | j        | j        f¬¦  «        }|                     ¦   «          | j                             |¦  «         | j        t           |<   d S d S )Nr   )Útimeoutc                 ó0   — |                      d ¦  «         d S r   )r   )Ú_r   s     r   Ú
weakref_cbz;ThreadPoolExecutor._adjust_thread_count.<locals>.weakref_cb»   s   € Ø�EŠE�$‰KŒKˆKˆKˆKr   z%s_%d)ÚnameÚtargetr   )r7   ÚacquirerS   ÚlenrW   rP   r\   rT   ÚThreadr?   ÚweakrefÚrefr]   r^   ÚstartÚaddr	   )r   rl   Únum_threadsÚthread_namer   s        r   rd   z'ThreadPoolExecutor._adjust_thread_count´   sú   € àÔ×'Ò'°Ð'Ñ2Ô2ð 	ØˆFð !Ô,ð 	ð 	ð 	ð 	õ ˜$œ-Ñ(Ô(ˆØ˜Ô*Ò*Ð*Ø! TÔ%=Ð%EÀØ%0ð%2ñ 2ˆKåÔ  k½'Ý'.¤{°4¸Ñ'DÔ'DØ'+Ô'7Ø'+Ô'8Ø'+¤~ð'7ð8ñ 8ô 8ˆAð
 �GŠG‰IŒIˆIØŒM×Ò˜aÑ Ô Ð Ø!%Ô!1�O˜AÑÐÐð +Ð*r   c                 ó  — | j         5  d| _        	 	 | j                             ¦   «         }n# t          j        $ r Y n3w xY w|�,|j                             t          | j        ¦  «        ¦  «         Œ_	 d d d ¦  «         d S # 1 swxY w Y   d S )NzBA thread initializer failed, the thread pool is not usable anymore)	rZ   rX   rS   Ú
get_nowaitrQ   ÚEmptyr   r$   rA   )r   r>   s     r   r5   z&ThreadPoolExecutor._initializer_failedË   s  € ØÔ ð 
	Sð 
	Sð4ˆDŒLðSðØ $Ô 0× ;Ò ;Ñ =Ô =�I�IøÝ”{ð ð ð Ø�EðøøøàÐ(ØÔ$×2Ò2Õ3CÀDÄLÑ3QÔ3QÑRÔRÐRðSð ð
	Sð 
	Sð 
	Sñ 
	Sô 
	Sð 
	Sð 
	Sð 
	Sð 
	Sð 
	Sð 
	Sð 
	Søøøð 
	Sð 
	Sð 
	Sð 
	Sð 
	Sð 
	Ss,   ˆ	A>’,«A>¬>»A>½>¾2A>Á>BÂBTF)Úcancel_futuresc                óh  — | j         5  d| _        |rM	 	 | j                             ¦   «         }n# t          j        $ r Y n w xY w|�|j                             ¦   «          ŒL| j                             d ¦  «         d d d ¦  «         n# 1 swxY w Y   |r| j	        D ]}| 
                    ¦   «          Œd S d S r   )rZ   r   rS   ry   rQ   rz   r   Úcancelr   rW   r   )r   Úwaitr{   r>   r   s        r   ÚshutdownzThreadPoolExecutor.shutdownØ   s(  € ØÔ ð 	'ð 	'Ø!ˆDŒNØð 	2ð2ðØ$(Ô$4×$?Ò$?Ñ$AÔ$A˜	˜	øÝ œ;ð ð ð Ø˜ðøøøà Ð,Ø!Ô(×/Ò/Ñ1Ô1Ð1ð2ð Ô× Ò  Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð  ð 	Ø”]ð ð �Ø—’‘”��ð	ð 	ðð s/   ˆB”.­B®A ½B¿A Á 9BÂB	ÂB	)NrE   Nr/   )T)r(   r)   r*   Ú	itertoolsÚcountÚ__next__r[   r   rg   r   ÚExecutorrB   rd   r5   r   r/   r   r   rD   rD   v   s²   € € € € € ð ˆyŒÑ Ô Ô)€Hà<>Ø,.ð$"ð $"ð $"ð $"ðLð ð ð" ”^Ô*Ô2€F„Nð2ð 2ð 2ð.Sð Sð Sð°Eð ð ð ð ð ð( ”~Ô.Ô6€HÔÐÐr   rD   )rB   Ú
__author__Úconcurrent.futuresr   r€   rQ   rT   r,   rr   rK   ÚWeakKeyDictionaryr	   r   rY   r   r   Ú_register_atexitÚhasattrr   ro   Ú_at_fork_reinitr8   Úobjectr   r?   ÚBrokenExecutorrA   rƒ   rD   r/   r   r   ú<module>rŒ      s¡  ðð %Ð $à1€
à $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	ð ,�'Ô+Ñ-Ô-€Ø€	ð '˜	œÑ(Ô(Ð ðð ð ð €	Ô ˜<Ñ (Ô (Ð (ð €7ˆ2Ð!Ñ"Ô"ð GØ€BÔÐ4Ô<Ø'<Ô'LØ(=Ô(EðGñ Gô Gð Gð
8ð 8ð 8ð 8ð 8�ñ 8ô 8ð 8ð.(Dð (Dð (DðVð ð ð ð �uÔ+ñ ô ð ðv7ð v7ð v7ð v7ð v7˜œñ v7ô v7ð v7ð v7ð v7r   