Viewing File: /opt/hc_python/lib/python3.12/site-packages/sentry_sdk/__pycache__/worker.cpython-312.pyc

�

h0ip���ddlZddlZddlmZmZddlmZmZddlmZddl	m
Z
ddlmZerddlm
Z
ddlmZdd	lmZe�ZGd
�d�Zy)�N)�sleep�time)�Queue�	FullError)�logger)�DEFAULT_QUEUE_SIZE)�
TYPE_CHECKING)�Any)�Optional)�Callablec�^�eZdZefd�Zed��Zd�Zd�Zd�Z	d�Z
d
d�Zd	�Zd
�Z
d�Zd�Zy)�BackgroundWorkerc�r�t|�|_tj�|_d|_d|_y�N)r�_queue�	threading�Lock�_lock�_thread�_thread_for_pid)�self�
queue_sizes  �@/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/worker.py�__init__zBackgroundWorker.__init__s+���J�'����^�^�%��
����#���c��|jtj�k7ry|jsy|jj	�S)NF)r�os�getpidr�is_alive�rs rrzBackgroundWorker.is_alives8�����2�9�9�;�.���|�|���|�|�$�$�&�&rc�>�|js|j�yyr)r�startr s r�_ensure_threadzBackgroundWorker._ensure_thread%s���}�}��J�J�L�rc��t�|z}|j}|jj�	|jrW|t�z
}|dkr	|jj�y|jj
|��|jr�W	|jj�y#|jj�wxYw)NrF)�timeoutT)rr�all_tasks_done�acquire�unfinished_tasks�release�wait)rr%�deadline�queue�delays     r�_timed_queue_joinz"BackgroundWorker._timed_queue_join*s����6�G�#������
���$�$�&�		+��(�(� �4�6�)���A�:� �

� � �(�(�*�	�$�$�)�)�%�)�8�	�(�(��� � �(�(�*��E� � �(�(�*�s�B4�/(B4�4Cc�`�|j5|jsktj|jd��|_d|j
_	|j
j�tj�|_
ddd�y#t$r
d|_Y�wxYw#1swYyxYw)Nzsentry-sdk.BackgroundWorker)�target�nameT)rrr�Thread�_targetr�daemonr"rrr�RuntimeErrorr s rr"zBackgroundWorker.start<s���
�Z�Z��=�=�(�/�/��<�<�.K� ���'+����#�(��L�L�&�&�(�+-�9�9�;�D�(��Z��$�(�$(�D�L�	(���Z�s*�AB$�3B�B!�B$� B!�!B$�$B-c�,�tjd�|j5|jr.	|jjt�d|_d|_ddd�y#t$rtjd�Y�7wxYw#1swYyxYw)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�debugrrr�
put_nowait�_TERMINATORrrr s r�killzBackgroundWorker.killMsw��	���9�:�
�Z�Z��|�|�N��K�K�*�*�;�7� $���'+��$��Z��!�N��L�L�!L�M�N��	�Z�s.�
B
�A&�B
�&B�B
�B�B
�
BNc���tjd�|j5|jr|dkDr|j	||�ddd�tjd�y#1swY�xYw)Nz#background worker got flush requestgzbackground worker flushed)rr7rr�_wait_flush)rr%�callbacks   r�flushzBackgroundWorker.flush^sO�����:�;�
�Z�Z��}�}��3��� � ��(�3��	���0�1��Z�s�$A$�$A-c�6�|jj�Sr)r�fullr s rr@zBackgroundWorker.fullfs���{�{���!�!rc�L�td|�}|j|�s�|jj�dz}t	j
d|�|�	|||�|j||z
�s4|jj�dz}t	jd|�yyy)Ng�������?�z%d event(s) pending on flushz"flush timed out, dropped %s events)�minr.r�qsizerr7�error)rr%r=�initial_timeout�pendings     rr<zBackgroundWorker._wait_flushjs����c�7�+���%�%�o�6��k�k�'�'�)�A�-�G��L�L�7��A��#���'�*��)�)�'�O�*C�D��+�+�+�+�-��1�����A�7�K�E�
7rc�z�|j�	|jj|�y#t$rYywxYw)NTF)r#rr8r�rr=s  r�submitzBackgroundWorker.submitws:������	��K�K�"�"�8�,����	��	�s�.�	:�:c�h�	|jj�}	|tur	|jj�y	|�|jj�td��m#t$rtjdd��Y�HwxYw#|jj�wxYw)NTzFailed processing job)�exc_infor)r�getr9�	task_done�	ExceptionrrErrIs  rr3zBackgroundWorker._target�s�����{�{���(�H�
(��{�*�����%�%�'�I��J����%�%�'��!�H���!�I��L�L�!8�4�H�I�����%�%�'�s)�B�A/�/ B�B�B�B�B1r)�__name__�
__module__�__qualname__rr�propertyrr#r.r"r:r>r@r<rJr3�rrrrsL��"4�$��'��'��
+�$(�",�"2�"�L��
rr)rrrr�sentry_sdk._queuerr�sentry_sdk.utilsr�sentry_sdk.constsr�typingr	r
rr�objectr9rrTrr�<module>rZs;��	���.�#�0� ������h��y�yr
Back to Directory File Manager