Ë
    S>{iž  ã                   ó°   — d dl Z d dlZd dlmZmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZ erd dlmZ d d	lmZ d d
lmZ  e«       Z G d„ de«      Zy)é    N)ÚsleepÚtime)Úcheck_thread_support)ÚQueueÚ	FullError)Úlogger)ÚDEFAULT_QUEUE_SIZE)ÚTYPE_CHECKING)ÚAny)ÚOptional)ÚCallablec                   ó^   — e Zd Zefd„Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
dd„Zd	„ Zd
„ Zd„ Zd„ Zy)ÚBackgroundWorkerc                 ó†   — t        «        t        |«      | _        t        j                  «       | _        d | _        d | _        y ©N)r   r   Ú_queueÚ	threadingÚLockÚ_lockÚ_threadÚ_thread_for_pid)ÚselfÚ
queue_sizes     úO/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sentry_sdk/worker.pyÚ__init__zBackgroundWorker.__init__   s1   € äÔÜ˜JÓ'ˆŒÜ—^‘^Ó%ˆŒ
ØˆŒØ#ˆÕó    c                 ó”   — | j                   t        j                  «       k7  ry| j                  sy| j                  j	                  «       S )NF)r   ÚosÚgetpidr   Úis_alive©r   s    r   r    zBackgroundWorker.is_alive   s8   € ð ×Ñ¤2§9¡9£;Ò.ØØ�|Š|ØØ�|‰|×$Ñ$Ó&Ð&r   c                 ó>   — | j                   s| j                  «        y y r   )r    Ústartr!   s    r   Ú_ensure_threadzBackgroundWorker._ensure_thread'   s   € à�}Š}Ø�J‰J�Lð r   c                 ó¦  — t        «       |z   }| j                  }|j                  j                  «        	 |j                  rW|t        «       z
  }|dk  r	 |j                  j                  «        y|j                  j                  |¬«       |j                  rŒW	 |j                  j                  «        y# |j                  j                  «        w xY w)Nr   F)ÚtimeoutT)r   r   Úall_tasks_doneÚacquireÚunfinished_tasksÚreleaseÚwait)r   r&   ÚdeadlineÚqueueÚdelays        r   Ú_timed_queue_joinz"BackgroundWorker._timed_queue_join,   s¯   € ä“6˜GÑ#ˆØ—‘ˆà×Ñ×$Ñ$Ô&ð		+Ø×(Ò(Ø ¤4£6Ñ)�Ø˜A’:Ø ð
 × Ñ ×(Ñ(Õ*ð	 ×$Ñ$×)Ñ)°%Ð)Ô8ð	 ×(Ó(ð à× Ñ ×(Ñ(Õ*øˆE× Ñ ×(Ñ(Õ*ús   µB4 Á/(B4 Â4Cc                 ó2  — | j                   5  | j                  sjt        j                  | j                  d¬«      | _        d| j
                  _        | j
                  j                  «        t        j                  «       | _
        d d d «       y # 1 sw Y   y xY w)Nzraven-sentry.BackgroundWorker)ÚtargetÚnameT)r   r    r   ÚThreadÚ_targetr   Údaemonr#   r   r   r   r!   s    r   r#   zBackgroundWorker.start>   sm   € à�Z‰Zñ 	3Ø—=’=Ü(×/Ñ/ØŸ<™<Ð.Mô �”ð '+�—‘Ô#Ø—‘×"Ñ"Ô$Ü')§y¡y£{�Ô$÷	3÷ 	3ñ 	3ús   �A7BÂBc                 ó,  — t        j                  d«       | j                  5  | j                  r.	 | j                  j                  t        «       d| _        d| _        ddd«       y# t        $ r t        j                  d«       Y Œ7w xY w# 1 sw Y   yxY w)z‡
        Kill worker thread. Returns immediately. Not useful for
        waiting on shutdown for events, use `flush` for that.
        z"background worker got kill requestz)background worker queue full, kill failedN)	r   Údebugr   r   r   Ú
put_nowaitÚ_TERMINATORr   r   r!   s    r   ÚkillzBackgroundWorker.killI   s‚   € ô 	�‰Ð9Ô:Ø�Z‰Zñ 	,Ø�|Š|ðNØ—K‘K×*Ñ*¬;Ô7ð  $�”Ø'+�Ô$÷	,ð 	,øô !ò NÜ—L‘LÐ!LÖMðNú÷		,ð 	,ús.   ¢B
°A&ÁB
Á&BÂB
ÂBÂB
Â
BNc                 óà   — t        j                  d«       | j                  5  | j                  r|dkD  r| j	                  ||«       d d d «       t        j                  d«       y # 1 sw Y   ŒxY w)Nz#background worker got flush requestg        zbackground worker flushed)r   r7   r   r    Ú_wait_flush)r   r&   Úcallbacks      r   ÚflushzBackgroundWorker.flushZ   sW   € ä�‰Ð:Ô;Ø�Z‰Zñ 	4Ø�}Š} ¨3¢Ø× Ñ  ¨(Ô3÷	4ô 	�‰Ð0Õ1÷	4ð 	4ús   ¢$A$Á$A-c                 ó6   — | j                   j                  «       S r   )r   Úfullr!   s    r   r@   zBackgroundWorker.fullb   s   € à�{‰{×ÑÓ!Ð!r   c                 óL  — t        d|«      }| j                  |«      s‡| j                  j                  «       dz   }t	        j
                  d|«       |�	 |||«       | j                  ||z
  «      s4| j                  j                  «       dz   }t	        j                  d|«       y y y )Ngš™™™™™¹?é   z%d event(s) pending on flushz"flush timed out, dropped %s events)Úminr/   r   Úqsizer   r7   Úerror)r   r&   r=   Úinitial_timeoutÚpendings        r   r<   zBackgroundWorker._wait_flushf   s–   € ä˜c 7Ó+ˆØ×%Ñ% oÔ6Ø—k‘k×'Ñ'Ó)¨AÑ-ˆGÜ�L‰LÐ7¸ÔAØÐ#Ù˜ 'Ô*à×)Ñ)¨'°OÑ*CÔDØŸ+™+×+Ñ+Ó-°Ñ1�Ü—‘ÐAÀ7ÕKð Eð 7r   c                 óz   — | j                  «        	 | j                  j                  |«       y# t        $ r Y yw xY w)NTF)r$   r   r8   r   ©r   r=   s     r   ÚsubmitzBackgroundWorker.submits   s:   € à×ÑÔð	Ø�K‰K×"Ñ" 8Ô,ØøÜò 	Ùð	ús   ’. ®	:¹:c                 óh  — 	 | j                   j                  «       }	 |t        u r	 | j                   j                  «        y 	  |«        | j                   j                  «        t        d«       Œm# t        $ r t        j                  dd¬«       Y ŒHw xY w# | j                   j                  «        w xY w)NTzFailed processing job)Úexc_infor   )r   Úgetr9   Ú	task_doneÚ	Exceptionr   rE   r   rI   s     r   r4   zBackgroundWorker._target|   s•   € àØ—{‘{—‘Ó(ˆHð(Øœ{Ñ*Øð —‘×%Ñ%Õ'ðIÙ”Jð —‘×%Ñ%Ô'Ü�!ŒHð øô !ò IÜ—L‘LÐ!8À4×HðIûð —‘×%Ñ%Õ'ús)   �B ÁA/ Á/ BÂB ÂBÂB ÂB1r   )Ú__name__Ú
__module__Ú__qualname__r	   r   Úpropertyr    r$   r/   r#   r:   r>   r@   r<   rJ   r4   © r   r   r   r      sL   „ Ø"4ó $ð ñ'ó ð'òò
+ò$	3ò,ó"2ò"òLòór   r   )r   r   r   r   Úsentry_sdk._compatr   Úsentry_sdk._queuer   r   Úsentry_sdk.utilsr   Úsentry_sdk.constsr	   Úsentry_sdk._typesr
   Útypingr   r   r   Úobjectr9   r   rT   r   r   ú<module>r\      s@   ðÛ 	Û ç Ý 3ß .Ý #Ý 0å +áÝÝÝñ ‹h€ôt�võ tr   