§
    ¯þ‰O‚  ã                   óö   — d dl Z d dlZ	 d dlmZ n# e$ r	 d dlmZ Y nw xY wd dlmZmZmZm	Z	 dZ
 G d„ dej        j        ¦  «        Z e¦   «         ad„ Zd„ Zd	„ Z ej        e¦  «          G d
„ de¦  «        ZdS )é    N)ÚQueue)ÚUtilsÚTaskÚErrorsÚLogsé
   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTaskConsumerc                 óÆ   — t           j        j                             | ¦  «         t	          ¦   «         | _        |                      d¦  «         |                      ¦   «          d S )Né   )r   Ú	threadingÚThreadÚ__init__r   ÚreadyÚ	setDaemonÚstart©Úselfs    úS/git_repos/lvtk-1.2.0/.waf3-1.7.2-89df5661dd0948598701ec3b9c0a4216/waflib/Runner.pyr   zTaskConsumer.__init__   sI   € Ý„/Ô×!Ò! $Ñ'Ô'Ð'Ý‰WŒW€$„*Ø‡.‚.�ÑÔÐØ‡*‚*�,„,€,€,€,ó    c                 óR   — 	 |                       ¦   «          d S # t          $ r Y d S w xY w©N)ÚloopÚ	Exceptionr   s    r   ÚrunzTaskConsumer.run   s:   € ðØ‡9‚9�;„;€;€;€;øÝ	ð ð ð Ø€4€4ðøøøs   ‚ ˜
&¥&c                 ó¬   — 	 | j                              ¦   «         }t          |t          j        ¦  «        s || ¦  «         n|                     ¦   «          ŒTr   )r   ÚgetÚ
isinstancer   ÚTaskBaseÚprocess©r   Útsks     r   r   zTaskConsumer.loop   sM   € ðØ„z‡~‚~ÑÔ€3Ý
�S�œÑ
'Ô
'ð Ø€Cˆ�I„I€I€Ià‡K‚K�M„M€Mðr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   © r   r   r
   r
      sA   € € € € € ðð ð ð
ð ð ð
ð ð ð ð r   r
   c                  ót   — 	 t                                d¦  «        S # t          $ r t          ¦   «         cY S w xY w)NF)Úpoolr   r   r
   r&   r   r   Úget_poolr)      sB   € ðÝ	�Š�%‰ŒÐøÝð ð ð Ý	‰ŒÐÐÐðøøøs   ‚ œ7¶7c                 ó:   — t                                | ¦  «         d S r   )r(   Úput)Úxs    r   Úput_poolr-   $   s   € Ý‡‚ˆ!�„€€€r   c                  ó:  — g } t                                ¦   «         rE|                      t                                ¦   «         ¦  «         t                                ¦   «         °E| D ]}|j                             d ¦  «         Œ| D ]}|                     ¦   «          Œd a d S r   )r(   ÚqsizeÚappendr   r   r+   Újoin)Úlstr,   s     r   Ú_free_resourcesr3   &   s�   € à€Ý‡z‚z�|„|ð Ø‡*‚*�T�XŠX‰ZŒZÑÔÐõ ‡z‚z�|„|ð à
ð ð €QØ„'‡+‚+ˆdÑÔÐÐØ
ð ð €QØ‡&‚&�(„(€(€(Ø
€€€r   c                   óR   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ ZdS )ÚParallelé   c                 óº   — || _         || _        g | _        g | _        t	          d¦  «        | _        d| _        d| _        d| _        g | _	        d | _
        d| _        d S )Nr   r   F)ÚnumjobsÚbldÚoutstandingÚfrozenr   ÚoutÚcountÚ	processedÚstopÚerrorÚbiterÚdirty)r   r9   Újs      r   r   zParallel.__init__2   sZ   € Ø€$„,Ø€$„(Ø€$ÔØ€$„+Ý�‰8Œ8€$„(Ø€$„*Ø€$„.Ø€$„)Ø€$„*Ø€$„*Ø€$„*€*€*r   c                 óH   — | j         sd S | j                              d¦  «        S ©Nr   )r:   Úpopr   s    r   Úget_next_taskzParallel.get_next_task>   s)   € Ø	Ô	ð Ø
ˆ$Ø	Ô	×	Ò	˜aÑ	 Ô	 Ð r   c                 óž   — t          j        dd¦  «        r| j                             d|¦  «         d S | j                             |¦  «         d S )Nr   r   )ÚrandomÚrandintr;   Úinsertr0   r!   s     r   ÚpostponezParallel.postponeB   sP   € Ý„^�A�aÑÔð Ø„;×Ò�a˜ÑÔÐÐÐà„;×Ò�cÑÔÐÐÐr   c                 óP  — | j         | j        t          z  k    r,|                      ¦   «          | j         | j        t          z  k    °,| j        �sY| j         r|                      ¦   «          n¼| j        rµ	 | j        | j        k    }|r…d}| j        D ]}|j        sd} nŒg }| j        D ]8}| 	                    t          |¦  «        ›dd„ |j        D ¦   «         ›�¦  «         Œ9t          j        d|›d                     |¦  «        ›�¦  «        ‚n# t          $ r Y nw xY w| j        | _        | j        r| xj        | j        z  c_        g | _        nS| j         sL| j                             t!          | j        ¦  «        ¦  «         | j                             ¦   «         | _        d S | j        �¯Wd S d S )Nz#check the build order for the tasksz!check the methods runnable_statusz	-> c                 ó,   — g | ]}t          |¦  «        ‘ŒS r&   )Úid)Ú.0r,   s     r   ú
<listcomp>z-Parallel.refill_task_list.<locals>.<listcomp>[   s   € Ð)FÐ)FÐ)F°1­"¨Q©%¬%Ð)FÐ)FÐ)Fr   zDeadlock detected: Ú )r=   r8   ÚGAPÚget_outr:   r;   Údeadlockr>   Ú	run_afterr0   Úreprr   ÚWafErrorr1   ÚAttributeErrorÚextendÚnextrA   r9   Útotal)r   ÚcondÚmsgr"   r2   s        r   Úrefill_task_listzParallel.refill_task_listG   sì  € ØŒ
�4”<¥Ñ#Ò#Ð#Ø‡<‚<�>„>€>ð 	Œ
�4”<¥Ñ#Ò#Ð#àÔñ 
Ø
„jð !Ø‡L‚L�N„N€N€NØŒð !ðJØ
Œ-˜œÒ
'€Tð 	ð 	JØ
/€cØ”ð ð ˆ#ØŒmð Ø/ˆØˆðð €cØ”ð Ið Iˆ#Ø
‡z‚z�t C™yœy˜y˜yÐ)FÐ)F¸¼Ð)FÑ)FÔ)FÐ)FÐGÑHÔHÐHÐHÝŒOˆO°s°s¸2¿7º7À3¹<¼<¸<ÐHÑIÔIÐIð	Jøõ ð 
ð 
ð 
Ø	€Tð
øøøð ”.€D„MØ
„kð 
ØÐÔ�d”kÑ!ÐÔØ€D„K€KØŒJð 
ØÔ×Ò�D ¤Ñ,Ô,Ñ-Ô-Ð-ØŒx�~Š~ÑÔ€D„JØ	€Eð5 Ôñ 
ð 
ð 
ð 
ð 
s   Á1D	 Ä	
DÄDc                 óš   — t          |dd ¦  «        r9| xj        |j        z  c_        | xj        t	          |j        ¦  «        z  c_        d S d S )NÚ
more_tasks)Úgetattrr:   ra   r\   Úlenr!   s     r   Úadd_more_taskszParallel.add_more_taskse   sT   € ÝˆS�˜dÑ#Ô#ð #ØÐÔ�S”^Ñ#ÐÔØ€:„:�s�3”>Ñ"Ô"Ñ"€:„:€:€:ð#ð #r   c                 óž   — | j                              ¦   «         }| j        s|                      |¦  «         | xj        dz  c_        d| _        |S )Nr   T)r<   r   r?   rd   r=   rB   r!   s     r   rT   zParallel.get_outi   sJ   € Ø
„h‡l‚l�n„n€#Ø	Œð Ø×Ò�sÑÔÐØ€*„*ˆa�-€*„*Ø€$„*Ø	€*r   c                 ó`   — | j         j        sd| _        | j                             |¦  «         d S )NT)r9   Úkeepr?   r@   r0   r!   s     r   Úerror_handlerzParallel.error_handlerp   s1   € Ø	ŒŒð Ø€4„9Ø„*×Ò�CÑÔÐÐÐr   c                 ó”   — 	 | j          n$# t          $ r |                      ¦   «          Y nw xY w| j                             |¦  «         d S r   )r(   rY   Úinit_task_poolr   r+   r!   s     r   Úadd_taskzParallel.add_taskt   s]   € ðØ„9€9€9øÝ	ð ð ð Ø×ÒÑÔÐÐÐðøøøà„*‡.‚.�ÑÔÐÐÐs   ‚
 Š+ª+c                 óÂ   ‡ — d„ t          ‰ j        ¦  «        D ¦   «         x}‰ _        t          d¦  «        ‰ _        ˆ fd„}|D ]}|j                             |¦  «         Œ|S )Nc                 ó*   — g | ]}t          ¦   «         ‘ŒS r&   )r)   )rP   Úis     r   rQ   z+Parallel.init_task_pool.<locals>.<listcomp>{   s   € Ð9Ð9Ð9 •(‘*”*Ð9Ð9Ð9r   r   c                 ó    •— ‰j         | _         d S r   )r   ©Úconsumerr   s    €r   Úsetqz%Parallel.init_task_pool.<locals>.setq}   s   ø€ Ø”*€8„>€>€>r   )Úranger8   r(   r   r   r+   )r   r(   rr   r,   s   `   r   rj   zParallel.init_task_poolz   sx   ø€ Ø9Ð9¥U¨4¬<Ñ%8Ô%8Ð9Ñ9Ô9Ð9€$€t„yÝ�1‰XŒX€$„*ðð ð ð ð àð ð €aØ„7‡;‚;ˆtÑÔÐÐØ	€+r   c                 óê   ‡ — ˆ fd„}	 ‰ j         }|D ]}‰ j                             |¦  «         Œ|D ]}‰                      ¦   «          Œ|D ]}t	          |¦  «         Œg ‰ _         d S # t
          $ r Y d S w xY w)Nc                 ód   •— t          d¦  «        | _        ‰j                             ‰¦  «         d S rE   )r   r   r<   r+   rp   s    €r   rr   z%Parallel.free_task_pool.<locals>.setqƒ   s*   ø€ Ý˜‘(”(€8„>Ø„8‡<‚<�ÑÔÐÐÐr   )r(   r   r+   rT   r-   rY   )r   rr   r(   r,   s   `   r   Úfree_task_poolzParallel.free_task_pool‚   s¹   ø€ ðð ð ð ð ðØŒ	€4ð ð ð €qØ„J‡N‚N�4ÑÔÐÐØð ð €qØ‡L‚L�N„N€N€NØð ð €qÝˆQ�K„K€K€KØ€4„9€9€9øõ 
ð ð ð Ø€4€4ðøøøs   ˆA$ Á$
A2Á1A2c                 ó’  — | j                              ¦   «         | _        | j        �sH|                      ¦   «          |                      ¦   «         }|s
| j        rŒ:�n|j        r| xj        dz  c_        ŒT| j        r�nó	 |                     ¦   «         }nù# t          $ rì | xj        dz  c_        t          j        ¦   «         |_        | j        s“| j         j        r‡t          j        |_        | j         j        dk    r9t           j        dk    s| j        s| j                             |¦  «         d| _        n*t           j        dk    r| j                             |¦  «         Y �Œ?t          j        |_        |                      |¦  «         Y �Œhw xY w|t          j        k    r|                      |¦  «         n¶|t          j        k    r7| xj        dz  c_        t          j        |_        |                      |¦  «         no| j        | j        f|_        | xj        dz  c_        | |_        | xj        dz  c_        | j        dk    r|                     ¦   «          n|                      |¦  «         | j        �¯H| j        r)| j        r"|                      ¦   «          | j        r| j        °"| j        dk    s	| j        sJ ‚|                       ¦   «          d S )Nr   Tr   )!r9   r\   r?   r_   rG   r=   Úhasrunr>   Úrunnable_statusr   r   Úex_stackÚerr_msgrg   r   ÚSKIPPEDr   Úverboser@   r0   Ú	EXCEPTIONrh   Ú	ASK_LATERrL   ÚSKIP_MErd   ÚpositionÚmasterr8   r    rk   rT   rv   )r   r"   Ústs      r   r   zParallel.start’   s°  € ØŒX�^Š^ÑÔ€$„*ØŒIñ -Ø×ÒÑÔÐØ×ÒÑÔ€3Ø
ð Ø„zð Øá
Ø	„jð Ø€N„N�AÑ€N„NØØ
„ið 
Ù	ðØ
×ÒÑÔ€B€BøÝ
ð ð ð Ø€N„N�AÑ€N„NÝ”Ñ Ô €C„KØŒ9ð 	˜œœð 	Ý”€S„ZØŒŒ�qÒÐÝ	Œ�aŠˆ˜tœzˆØ„z×Ò˜ÑÔÐØ€d„i€iå	Œ�aŠˆØ„z×Ò˜ÑÔÐØ�XÝŒ~€C„JØ×Ò�sÑÔÐØ�Hðøøøð  	�$Œ.ÒÐØ‡M‚M�#ÑÔÐÐØ
�DŒLÒÐØ€N„N�AÑ€N„NÝŒ|€C„JØ×Ò˜ÑÔÐÐà”. ¤Ð,€C„LØ€J„J��M€J„JØ€C„JØ€N„N�AÑ€N„NØ„|�Q‚€Ø‡[‚[�]„]€]€]à	‡]‚]�3ÑÔÐð[ ŒIñ -ð\ 	Œ
ð �t”zð Ø‡<‚<�>„>€>ð 	Œ
ð �t”zð à	Œ�QŠˆ˜$œ)ˆˆˆØ×ÒÑÔÐÐÐs   Á=B ÂC	FÅ&FÆFN)r6   )r#   r$   r%   r   rG   rL   r_   rd   rT   rh   rk   rj   rv   r   r&   r   r   r5   r5   1   s¾   € € € € € ðð ð ð ð!ð !ð !ðð ð ð

ð 
ð 
ð<#ð #ð #ðð ð ðð ð ðð ð ðð ð ðð ð ð 3ð 3ð 3ð 3ð 3r   r5   )rI   ÚatexitÚqueuer   ÚImportErrorÚwaflibr   r   r   r   rS   r   r   r
   r(   r)   r-   r3   ÚregisterÚobjectr5   r&   r   r   ú<module>rŠ      sP  ðð
 Ð Ð Ð Ð Ð Ð Ð ðØÐÐÐÐÐÐøØð ð ð ØÐÐÐÐÐÐÐðøøøà )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø€ðð ð ð ð �5”?Ô)ñ ô ð ð$ €U�W„W€ðð ð ð
ð ð ð	ð 	ð 	ð €„�Ñ  Ô  Ð  ðTð Tð Tð Tð Tˆvñ Tô Tð Tð Tð Ts   Š ‘ž