bgdZddlmZddlZddlZddlZddlZddlmZmZddl m Z ddl m Z ddl mZmZdZejd ZGd d eZGd d e e ZdS)z raven.transport.threaded ~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. )absolute_importN)sleeptime)AsyncTransport) HTTPTransport)Queue check_threads z sentry.errorsc^eZdZeZefdZdZdZdZ dZ dZ d dZ d Z d ZdS) AsyncWorkercttd|_tj|_d|_d|_d|i|_| dS)Nshutdown_timeout) r r_queue threadingLock_lock_thread_thread_for_pidoptionsstart)selfrs O/opt/cloudlinux/venv/lib64/python3.11/site-packages/raven/transport/threaded.py__init__zAsyncWorker.__init__sXBii ^%%  #  0   c~|jtjkrdS|jo|jS)NF)rosgetpidris_alivers rrzAsyncWorker.is_alive(s6  29;; . .5|7 5 5 7 77rcZ|rdS|dSN)rrr s r_ensure_threadzAsyncWorker._ensure_thread-s( ==??  F rcB|j5|s ddddS|j|j|jd}t d|}||s|j}td|ztd|ztj dkrtdntd|||z d|_ ddddS#1swxYwYdS)Nrg?z6Sentry is attempting to send %i pending error messageszWaiting up to %s secondsntzPress Ctrl-Break to quitzPress Ctrl-C to quit) rrr put_nowait _terminatorrmin_timed_queue_joinqsizeprintrnamer)rtimeoutinitial_timeoutsizes rmain_thread_terminatedz"AsyncWorker.main_thread_terminated2s Z  ==??         K " "4#3 4 4 4l#56G"#w//O))/:: B{((**N07:;;;7d??455550111&&w'@AAADL=                  sDCDDDct|z}|j}|j |jrU|tz }|dkr |jdS|j||jU |jdS#|jwxYw)z implementation of Queue.join which takes a 'timeout' argument returns true on success, false on timeout rFr-T)rrall_tasks_doneacquireunfinished_tasksreleasewait)rr-deadlinequeuedelays rr)zAsyncWorker._timed_queue_joinSs 66G#  $$&&& +( 9 466)A::   ( ( * * * * * $))%)888 ( 9  ( ( * * * * *E ( ( * * * *sB+-"B++Cc |j |sktj|jd|_|jd|jtj |_ |j tj|jdS#|j tj|jwxYw)z) Starts the task thread. zraven.AsyncWorker)targetr,TN)rr4rrThread_targetr setDaemonrrrrr6atexitregisterr0r s rrzAsyncWorker.startks  9==?? 3(/t|J]^^^  &&t,,, ""$$$')y{{$ J   OD7 8 8 8 8 8 J   OD7 8 8 8 8s A?C4DNc|j5|jrH|j|j|j|d|_d|_ddddS#1swxYwYdS)z5 Stops the task thread. Synchronous! r2N)rrrr&r'joinr)rr-s rstopzAsyncWorker.stopzsZ , ,| , &&t'7888 !!'!222# '+$  , , , , , , , , , , , , , , , , , ,sAA%%A),A)ch||j|||fdSr")r#rr&)rcallbackargskwargss rr9zAsyncWorker.queues7  $788888rc |j} ||jur |jdS|\}}} ||i|n,#t$rt ddYnwxYw|jn#|jwxYwtd)NTzFailed processing job)exc_infor)rgetr' task_done Exceptionloggererrorr)rrecordrFrGrHs rr>zAsyncWorker._targets [__&&F (T--- %%''''' *0&$IHd-f---- IIILL!84LHHHHHI %%'''' %%'''' !HHH s5 BBAB&A:7B9A::BB2r")__name__ __module__ __qualname__objectr'DEFAULT_TIMEOUTrrr#r0r)rrDr9r>rrr r s&((K(7    888     B+++0 9 9 9 , , , ,999rr c2eZdZgdZdZfdZdZxZS)ThreadedHTTPTransport)httphttpsz threaded+httpzthreaded+httpsct|dr|jst|_|jS)N_worker)hasattrr\rr r s r get_workerz ThreadedHTTPTransport.get_workers<tY'' )t|/D/D/F/F )&==DL|rc tt|||||dS#t$r}||Yd}~dSd}~wwxYwr")superrXsendrM)rurldataheaders success_cb failure_cbe __class__s r send_synczThreadedHTTPTransport.send_syncsv  ' . . 3 3Cw G G G JLLLLL    JqMMMMMMMMM s*9 A AAch||j|||||dSr")r^r9ri)rrbrcrdrerfs r async_sendz ThreadedHTTPTransport.async_sendsB  NCw J H H H H Hr)rQrRrSschemer^rirk __classcell__)rhs@rrXrXsh A A AF HHHHHHHrrX)__doc__ __future__rr@loggingrrrrraven.transport.baserraven.transport.httprraven.utils.compatrr rU getLoggerrNrTr rXrVrrrus('&&&&&  //////......33333333  ? + +}}}}}&}}}@HHHHHNMHHHHHr