0ipddlZddlZddlmZmZddlmZmZddlmZddl m Z ddl m Z e rddl m Z ddl mZdd l mZeZGd d Zy) N)sleeptime)Queue FullError)logger)DEFAULT_QUEUE_SIZE) TYPE_CHECKING)Any)Optional)Callablec^eZdZefdZedZdZdZdZ dZ d dZ d Z d Z d Zd Zy)BackgroundWorkercrt||_tj|_d|_d|_yN)r_queue threadingLock_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|jtjk7ry|jsy|jj S)NF)rosgetpidris_alivers rrzBackgroundWorker.is_alives8   299; .||||$$&&rc>|js|jyyr)rstartr s r_ensure_threadzBackgroundWorker._ensure_thread%s}} JJLrct|z}|j}|jj |jrW|tz }|dkr |jj y|jj ||jrW |jj y#|jj wxYw)NrF)timeoutT)rrall_tasks_doneacquireunfinished_tasksreleasewait)rr%deadlinequeuedelays r_timed_queue_joinz"BackgroundWorker._timed_queue_join*s6G#  $$& +(( 46)A:  ( ( * $$))%)8 ((   ( ( *E ( ( *sB4/(B44Cc`|j5|jsktj|jd|_d|j _ |j jtj|_ dddy#t$r d|_YwxYw#1swYyxYw)Nzsentry-sdk.BackgroundWorker)targetnameT) rrrThread_targetrdaemonr"rrr RuntimeErrorr s rr"zBackgroundWorker.start<s ZZ==(//<<.K  '+ #(LL&&(+-99;D(Z$($(DL (Zs*AB$3BB!B$ B!!B$$B-c,tjd|j5|jr. |jj t d|_d|_dddy#t$rtjdY7wxYw#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) rdebugrrr put_nowait _TERMINATORrrr s rkillzBackgroundWorker.killMsw  9: ZZ||NKK**;7 $ '+$Z!NLL!LMN Zs. B A&B &BB BB  BNctjd|j5|jr|dkDr|j ||dddtjdy#1swYxYw)Nz#background worker got flush requestgzbackground worker flushed)rr7rr _wait_flush)rr%callbacks rflushzBackgroundWorker.flush^sO :; ZZ}}3  (3  01Zs $A$$A-c6|jjSr)rfullr s rr@zBackgroundWorker.fullfs{{!!rcLtd|}|j|s|jjdz}t j d|| ||||j||z s4|jjdz}t j d|yyy)Ng?z%d event(s) pending on flushz"flush timed out, dropped %s events)minr.rqsizerr7error)rr%r=initial_timeoutpendings rr<zBackgroundWorker._wait_flushjsc7+%%o6kk'')A-G LL7 A#'*))'O*CD++++-1 A7KE 7rcz|j |jj|y#t$rYywxYw)NTF)r#rr8rrr=s rsubmitzBackgroundWorker.submitws:   KK " "8 ,  s . ::ch |jj} |tur |jjy ||jjtdm#t$rt j ddYHwxYw#|jjwxYw)NTzFailed processing job)exc_infor)rgetr9 task_done ExceptionrrErrIs rr3zBackgroundWorker._targets{{(H ({*  %%' IJ %%' !H!ILL!84HI %%'s)BA// BBBBB1r)__name__ __module__ __qualname__rrpropertyrr#r.r"r:r>r@r<rJr3rrrrsL"4$'' +$(","2" L rr)rrrrsentry_sdk._queuerrsentry_sdk.utilsrsentry_sdk.constsrtypingr r r r objectr9rrTrrrZs; .#0 h yyr