Ë
    ÷Q(hø-  ã                   óz  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ ddlmZ g d¢Z	 d dlmZ d d	lmZ  ed«      \  ZZej                  j,                  Z G d„ d«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ d«      Z G d„ d«      Zy# e$ r	  ed
«      ‚w xY w)é    N)Útime)ÚprocessÚutil)Úassert_spawningé   )Úresource_tracker)ÚLockÚRLockÚ	SemaphoreÚBoundedSemaphoreÚ	ConditionÚEvent)ÚSemLock)Ú
sem_unlinkz—This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.é   c                   ót   — e Zd Z ej                  «       Zd
d„Zed„ «       Zd„ Z	d„ Z
d„ Zd„ Zd„ Zed	„ «       Zy)r   Nc                 óz  — d}|€Ct        d«      D ]*  }	 t        |||t        j                  «       |«      | _         n  t        d«      ‚t        |||||«      | _        || _        t        j                  d| j                  j                  › d| j                  › d�«       | j                  «        d„ }t        j                  | |«       t        j                  | j                  j                  d«       t        j                  | t        j                  | j                  j                  fd	¬
«       y # t
        $ r Y �Œ)w xY w)NFéd   zcannot find name for semaphorezcreated semlock with handle ú and name "ú"c                 ó8   — | j                   j                  «        y ©N)Ú_semlockÚ_after_fork)Úobjs    úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/joblib/externals/loky/backend/synchronize.pyr   z%SemLock.__init__.<locals>._after_fork[   s   € Ø�L‰L×$Ñ$Õ&ó    Úsemlockr   )Úexitpriority)ÚrangeÚ_SemLockr   Ú
_make_namer   ÚFileExistsErrorÚnamer   ÚdebugÚhandleÚ_make_methodsÚregister_after_forkr   ÚregisterÚFinalizeÚ_cleanup)ÚselfÚkindÚvalueÚmaxvaluer$   Ú
unlink_nowÚ_r   s           r   Ú__init__zSemLock.__init__A   s%  € àˆ
Øˆ<ä˜3“Zò 
H�ðÜ$,Ø˜e X¬w×/AÑ/AÓ/CÀZó%�D”Mñ ð
Hô &Ð&FÓGÐGä$ T¨5°(¸DÀ*ÓMˆDŒMØˆŒ	Ü�
‰
Ø*¨4¯=©=×+?Ñ+?Ð*@ð AØ—	‘	ˆ{˜!ðô	
ð
 	×ÑÔò	'ô 	× Ñ   {Ô3ô 	×!Ñ! $§-¡-×"4Ñ"4°iÔ@Ü�‰Ø”'×"Ñ" T§]¡]×%7Ñ%7Ð$9Èö	
øô1 'ò Úðús   ”&D-Ä-	D:Ä9D:c                 óœ   — 	 t        | «       t        j                  | d«       y # t        $ r Y Œ"w xY w# t        j                  | d«       w xY w)Nr   )r   ÚFileNotFoundErrorr   Ú
unregister)r$   s    r   r+   zSemLock._cleanupg   sJ   € ð	9Ü�tÔô ×'Ñ'¨¨iÕ8øô !ò 	ñ ð	ûô
 ×'Ñ'¨¨iÕ8ús   ‚$ ¤	0­3 ¯0°3 ³Ac                 óp   — | j                   j                  | _        | j                   j                  | _        y r   )r   ÚacquireÚrelease©r,   s    r   r'   zSemLock._make_methodsr   s$   € Ø—}‘}×,Ñ,ˆŒØ—}‘}×,Ñ,ˆ�r   c                 ó6   — | j                   j                  «       S r   )r   r7   r9   s    r   Ú	__enter__zSemLock.__enter__v   ó   € Ø�}‰}×$Ñ$Ó&Ð&r   c                 ó6   — | j                   j                  «       S r   )r   r8   ©r,   Úargss     r   Ú__exit__zSemLock.__exit__y   r<   r   c                 ó�   — t        | «       | j                  }|j                  }||j                  |j                  |j
                  fS r   )r   r   r&   r-   r/   r$   )r,   ÚslÚhs      r   Ú__getstate__zSemLock.__getstate__|   s7   € Ü˜ÔØ�]‰]ˆØ�I‰IˆØ�2—7‘7˜BŸK™K¨¯©Ð1Ð1r   c                 ó–   — t        j                  |Ž | _        t        j                  d|d   ›d|d   › d�«       | j                  «        y )Nzrecreated blocker with handle r   r   é   r   )r!   Ú_rebuildr   r   r%   r'   ©r,   Ústates     r   Ú__setstate__zSemLock.__setstate__‚   sH   € Ü ×)Ñ)¨5Ð1ˆŒÜ�
‰
Ø,¨U°1©X¨L¸ÀEÈ!ÁHÀ:ÈQÐOô	
ð 	×ÑÕr   c                  ód   — dt        j                  «       › dt        t        j                  «      › �S )Nz/loky-ú-)ÚosÚgetpidÚnextr   Ú_rand© r   r   r"   zSemLock._make_name‰   s'   € ð œŸ	™	›�} A¤d¬7¯=©=Ó&9Ð%:Ð;Ð;r   r   )Ú__name__Ú
__module__Ú__qualname__ÚtempfileÚ_RandomNameSequencerP   r2   Ústaticmethodr+   r'   r;   r@   rD   rJ   r"   rQ   r   r   r   r   =   sY   „ à(ˆH×(Ñ(Ó*€Eó$
ðL ñ9ó ð9ò-ò'ò'ò2òð ñ<ó ñ<r   r   c                   ó    — e Zd Zdd„Zd„ Zd„ Zy)r   c                 óD   — t         j                  | t        |t        «       y r   )r   r2   Ú	SEMAPHOREÚSEM_VALUE_MAX©r,   r.   s     r   r2   zSemaphore.__init__•   s   € Ü×Ñ˜œy¨%´Õ?r   c                 ór   — t         j                  dk(  rt        d«      ‚| j                  j	                  «       S )NÚdarwinz#OSX does not implement sem_getvalue)ÚsysÚplatformÚNotImplementedErrorr   Ú
_get_valuer9   s    r   Ú	get_valuezSemaphore.get_value˜   s-   € Ü�<‰<˜8Ò#Ü%Ð&KÓLÐLØ�}‰}×'Ñ'Ó)Ð)r   c                 ó”   — 	 | j                   j                  «       }d| j                  j                  › d|› d�S # t        $ r d}Y Œ*w xY w)NÚunknownú<ú(value=ú)>)r   rb   Ú	ExceptionÚ	__class__rR   r\   s     r   Ú__repr__zSemaphore.__repr__�   sQ   € ð	Ø—M‘M×,Ñ,Ó.ˆEð �4—>‘>×*Ñ*Ð+¨7°5°'¸Ð<Ð<øô ò 	ØŠEð	ús   ‚9 ¹AÁAN©r   )rR   rS   rT   r2   rc   rk   rQ   r   r   r   r   ”   s   „ ó@ò*ó
=r   r   c                   ó   — e Zd Zdd„Zd„ Zy)r   c                 ó<   — t         j                  | t        ||«       y r   )r   r2   rZ   r\   s     r   r2   zBoundedSemaphore.__init__«   s   € Ü×Ñ˜œy¨%°Õ7r   c                 óÂ   — 	 | j                   j                  «       }d| j                  j                  › d|› d| j                   j
                  › d�S # t        $ r d}Y ŒAw xY w)Nre   rf   rg   z, maxvalue=rh   )r   rb   ri   rj   rR   r/   r\   s     r   rk   zBoundedSemaphore.__repr__®   sj   € ð	Ø—M‘M×,Ñ,Ó.ˆEð �—‘×'Ñ'Ð(¨°¨wð 7ØŸ™×.Ñ.Ð/¨rð3ð	
øô ò 	ØŠEð	ús   ‚A ÁAÁANrl   )rR   rS   rT   r2   rk   rQ   r   r   r   r   ª   s   „ ó8ó
r   r   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )r	   c                 ó0   •— t         ‰| �  t        dd«       y ©Nr   )Úsuperr2   rZ   ©r,   rj   s    €r   r2   zLock.__init__¿   s   ø€ Ü‰Ñœ A qÕ)r   c                 óÞ  — 	 | j                   j                  «       rct        j                  «       j                  }t        j                  «       j                  dk7  rf|› dt        j                  «       j                  › �}nB| j                   j                  «       dk(  rd}n"| j                   j                  «       dkD  rd}nd}d	| j                  j                  › d
|› d�S # t        $ r d}Y Œ*w xY w)NÚ
MainThreadú|r   ÚNoner   ÚSomeOtherThreadÚSomeOtherProcessre   rf   z(owner=rh   )r   Ú_is_miner   Úcurrent_processr$   Ú	threadingÚcurrent_threadrb   Ú_countri   rj   rR   )r,   r$   s     r   rk   zLock.__repr__Â   sÓ   € ð	Ø�}‰}×%Ñ%Ô'Ü×.Ñ.Ó0×5Ñ5�Ü×+Ñ+Ó-×2Ñ2°lÒBØ"˜V 1¤Y×%=Ñ%=Ó%?×%DÑ%DÐ$EÐF‘DØ—‘×)Ñ)Ó+¨qÒ0Ø‘Ø—‘×%Ñ%Ó'¨!Ò+Ø(‘à)�ð �4—>‘>×*Ñ*Ð+¨7°4°&¸Ð;Ð;øô ò 	ØŠDð	ús   ‚B?C ÃC,Ã+C,©rR   rS   rT   r2   rk   Ú__classcell__©rj   s   @r   r	   r	   ¾   s   ø„ ô*ö<r   r	   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )r
   c                 ó0   •— t         ‰| �  t        dd«       y rr   )rs   r2   ÚRECURSIVE_MUTEXrt   s    €r   r2   zRLock.__init__Ù   s   ø€ Ü‰Ñœ¨!¨QÕ/r   c                 ó0  — 	 | j                   j                  «       r}t        j                  «       j                  }t        j                  «       j                  dk7  r#|› dt        j                  «       j                  › �}| j                   j                  «       }nK| j                   j                  «       dk(  rd\  }}n(| j                   j                  «       dkD  rd\  }}nd\  }}d	| j                  j                  › d
|› d|› d�S # t        $ r d\  }}Y Œ0w xY w)Nrv   rw   r   )rx   r   r   )ry   Únonzero)rz   r‡   )re   re   rf   ú(ú, rh   )r   r{   r   r|   r$   r}   r~   r   rb   ri   rj   rR   )r,   r$   Úcounts      r   rk   zRLock.__repr__Ü   sû   € ð	/Ø�}‰}×%Ñ%Ô'Ü×.Ñ.Ó0×5Ñ5�Ü×+Ñ+Ó-×2Ñ2°lÒBØ"˜V 1¤Y×%=Ñ%=Ó%?×%DÑ%DÐ$EÐF�DØŸ™×,Ñ,Ó.‘Ø—‘×)Ñ)Ó+¨qÒ0Ø'‘�‘eØ—‘×%Ñ%Ó'¨!Ò+Ø:‘�‘eà;‘��eð �4—>‘>×*Ñ*Ð+¨1¨T¨F°"°U°G¸2Ð>Ð>øô ò 	/Ø.‰KˆD’%ð	/ús   ‚C"D ÄDÄDr€   r‚   s   @r   r
   r
   Ø   s   ø„ ô0ö?r   r
   c                   óT   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dd	„Z
d
„ Zd„ Zdd„Zy)r   Nc                 óª   — |xs
 t        «       | _        t        d«      | _        t        d«      | _        t        d«      | _        | j                  «        y ©Nr   )r
   Ú_lockr   Ú_sleeping_countÚ_woken_countÚ_wait_semaphorer'   )r,   Úlocks     r   r2   zCondition.__init__ô   s?   € Ø’_œU›WˆŒ
Ü(¨›|ˆÔÜ% a›LˆÔÜ(¨›|ˆÔØ×ÑÕr   c                 ót   — t        | «       | j                  | j                  | j                  | j                  fS r   )r   rŽ   r�   r�   r‘   r9   s    r   rD   zCondition.__getstate__û   s6   € Ü˜Ôà�J‰JØ× Ñ Ø×ÑØ× Ñ ð	
ð 	
r   c                 óZ   — |\  | _         | _        | _        | _        | j	                  «        y r   )rŽ   r�   r�   r‘   r'   rH   s     r   rJ   zCondition.__setstate__  s/   € ð ñ	
ØŒJØÔ ØÔØÔ à×ÑÕr   c                 ó6   — | j                   j                  «       S r   )rŽ   r;   r9   s    r   r;   zCondition.__enter__  s   € Ø�z‰z×#Ñ#Ó%Ð%r   c                 ó4   —  | j                   j                  |Ž S r   )rŽ   r@   r>   s     r   r@   zCondition.__exit__  s   € Ø"ˆt�z‰z×"Ñ" DÐ)Ð)r   c                 óp   — | j                   j                  | _        | j                   j                  | _        y r   )rŽ   r7   r8   r9   s    r   r'   zCondition._make_methods  s$   € Ø—z‘z×)Ñ)ˆŒØ—z‘z×)Ñ)ˆ�r   c                 ó  — 	 | j                   j                  j                  «       | j                  j                  j                  «       z
  }d| j
                  j                  › d| j                  › d|› d�S # t        $ r d}Y Œ7w xY w)Nre   rf   rˆ   r‰   rh   )r�   r   rb   r�   ri   rj   rR   rŽ   )r,   Únum_waiterss     r   rk   zCondition.__repr__  sƒ   € ð	$à×$Ñ$×-Ñ-×8Ñ8Ó:Ø×#Ñ#×,Ñ,×7Ñ7Ó9ñ:ð ð �4—>‘>×*Ñ*Ð+¨1¨T¯Z©Z¨L¸¸;¸-ÀrÐJÐJøô ò 	$Ø#ŠKð	$ús   ‚A	A5 Á5BÂBc                 ó|  — | j                   j                  j                  «       sJ d«       ‚| j                  j	                  «        | j                   j                  j                  «       }t        |«      D ]  }| j                   j	                  «        Œ 	 | j                  j                  d|«      | j                  j	                  «        t        |«      D ]  }| j                   j                  «        Œ S # | j                  j	                  «        t        |«      D ]  }| j                   j                  «        Œ w xY w)Nz,must acquire() condition before using wait()T)
rŽ   r   r{   r�   r8   r   r    r‘   r7   r�   )r,   ÚtimeoutrŠ   r1   s       r   ÚwaitzCondition.wait!  s  € à�J‰J×Ñ×(Ñ(Ô*ð	:à9ó	:Ø*ð 	×Ñ×$Ñ$Ô&ð —
‘
×#Ñ#×*Ñ*Ó,ˆÜ�u“ò 	!ˆAØ�J‰J×ÑÕ ð	!ð		%à×'Ñ'×/Ñ/°°gÓ>ð ×Ñ×%Ñ%Ô'ô ˜5“\ò %�Ø—
‘
×"Ñ"Õ$ñ%øð ×Ñ×%Ñ%Ô'ô ˜5“\ò %�Ø—
‘
×"Ñ"Õ$ñ%ús   ÂC5 Ã5AD;c                 ó  — | j                   j                  j                  «       sJ d«       ‚| j                  j	                  d«      rJ ‚| j
                  j	                  d«      r;| j                  j	                  d«      }|sJ ‚| j
                  j	                  d«      rŒ;| j                  j	                  d«      rP| j                  j                  «        | j
                  j	                  «        | j                  j	                  d«       y y )Núlock is not ownedF)rŽ   r   r{   r‘   r7   r�   r�   r8   )r,   Úress     r   ÚnotifyzCondition.notify9  sÜ   € Ø�z‰z×"Ñ"×+Ñ+Ô-ÐBÐ/BÓBÐ-Ø×'Ñ'×/Ñ/°Ô6Ð6Ð6ð ×Ñ×'Ñ'¨Ô.Ø×&Ñ&×.Ñ.¨uÓ5ˆCÙˆJ�3ð ×Ñ×'Ñ'¨Õ.ð ×Ñ×'Ñ'¨Ô.Ø× Ñ ×(Ñ(Ô*Ø×Ñ×%Ñ%Ô'ð × Ñ ×(Ñ(¨Õ/ð /r   c                 ó¼  — | j                   j                  j                  «       sJ d«       ‚| j                  j	                  d«      rJ ‚| j
                  j	                  d«      r;| j                  j	                  d«      }|sJ ‚| j
                  j	                  d«      rŒ;d}| j                  j	                  d«      r;| j                  j                  «        |dz  }| j                  j	                  d«      rŒ;|rdt        |«      D ]  }| j
                  j	                  «        Œ | j                  j	                  d«      r	 | j                  j	                  d«      rŒy y y )Nrž   Fr   r   )	rŽ   r   r{   r‘   r7   r�   r�   r8   r    )r,   rŸ   Úsleepersr1   s       r   Ú
notify_allzCondition.notify_allJ  s1  € Ø�z‰z×"Ñ"×+Ñ+Ô-ÐBÐ/BÓBÐ-Ø×'Ñ'×/Ñ/°Ô6Ð6Ð6ð ×Ñ×'Ñ'¨Ô.Ø×&Ñ&×.Ñ.¨uÓ5ˆCÙˆJ�3ð ×Ñ×'Ñ'¨Õ.ð ˆØ×"Ñ"×*Ñ*¨5Ô1Ø× Ñ ×(Ñ(Ô*Ø˜‰MˆHð ×"Ñ"×*Ñ*¨5Õ1ñ Ü˜8“_ò ,�Ø×!Ñ!×)Ñ)Õ+ð,ð ×&Ñ&×.Ñ.¨uÔ5Øð ×&Ñ&×.Ñ.¨u×5ð r   c                 ó¬   —  |«       }|r|S |�t        «       |z   }nd }d }|s2|�|t        «       z
  }|dk  r	 |S | j                  «        |«       }|sŒ2|S r�   )Ú_timerœ   )r,   Ú	predicater›   ÚresultÚendtimeÚwaittimes         r   Úwait_forzCondition.wait_fora  st   € Ù“ˆÙØˆMØÐÜ“g Ñ'‰GàˆGØˆHÙØÐ"Ø"¤U£WÑ,�Ø˜q’=Øð ˆð �I‰I�hÔÙ“[ˆFò ð ˆr   r   )rR   rS   rT   r2   rD   rJ   r;   r@   r'   rk   rœ   r    r£   rª   rQ   r   r   r   r   ó   s:   „ óò
òò&ò*ò*òKó%ò00ò"ô.r   r   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zdd„Zy)r   c                 óT   — t        t        «       «      | _        t        d«      | _        y r�   )r   r	   Ú_condr   Ú_flagr9   s    r   r2   zEvent.__init__z  s   € Üœt›vÓ&ˆŒ
Ü˜q“\ˆ�
r   c                 óÆ   — | j                   5  | j                  j                  d«      r$| j                  j                  «        	 d d d «       y	 d d d «       y# 1 sw Y   y xY w©NFT)r­   r®   r7   r8   r9   s    r   Úis_setzEvent.is_set~  sR   € Ø�Z‰Zñ 	Ø�z‰z×!Ñ! %Ô(Ø—
‘
×"Ñ"Ô$Ø÷	ð 	ð ÷		÷ 	ñ 	ús   �7AÁAÁA c                 óä   — | j                   5  | j                  j                  d«       | j                  j                  «        | j                   j	                  «        d d d «       y # 1 sw Y   y xY w©NF)r­   r®   r7   r8   r£   r9   s    r   Úsetz	Event.set…  sP   € Ø�Z‰Zñ 	$Ø�J‰J×Ñ˜uÔ%Ø�J‰J×ÑÔ Ø�J‰J×!Ñ!Ô#÷	$÷ 	$ñ 	$ús   �AA&Á&A/c                 ó|   — | j                   5  | j                  j                  d«       d d d «       y # 1 sw Y   y xY wr³   )r­   r®   r7   r9   s    r   ÚclearzEvent.clear‹  s0   € Ø�Z‰Zñ 	&Ø�J‰J×Ñ˜uÔ%÷	&÷ 	&ñ 	&ús   �2²;Nc                 óh  — | j                   5  | j                  j                  d«      r| j                  j                  «        n| j                   j	                  |«       | j                  j                  d«      r$| j                  j                  «        	 d d d «       y	 d d d «       y# 1 sw Y   y xY wr°   )r­   r®   r7   r8   rœ   )r,   r›   s     r   rœ   z
Event.wait�  s„   € Ø�Z‰Zñ 		Ø�z‰z×!Ñ! %Ô(Ø—
‘
×"Ñ"Õ$à—
‘
—‘ Ô(à�z‰z×!Ñ! %Ô(Ø—
‘
×"Ñ"Ô$Ø÷		ð 		ð ÷		÷ 		ñ 		ús   �BB(ÂB(Â(B1r   )rR   rS   rT   r2   r±   r´   r¶   rœ   rQ   r   r   r   r   y  s   „ ò"òò$ò&ô
r   r   )rM   r_   rU   r}   Ú_multiprocessingr   r¥   Úmultiprocessingr   r   Úmultiprocessing.contextr   Ú r   Ú__all__r   r!   r   ÚImportErrorr    r…   rZ   r[   r   r   r	   r
   r   r   rQ   r   r   ú<module>r¾      sÍ   ðó 
Û 
Û Û Û Ý ß )Ý 3å ò€ð	Ý4Ý+ñ # 1›XÑ €�Ø ×(Ñ(×6Ñ6€÷O<ñ O<ôn=�ô =ô,
�yô 
ô(<ˆ7ô <ô4?ˆGô ?÷6~ñ ~÷L ò  øðc
 ò Ù
ð	%óð ðús   ´B, Â,B: