Viewing File: /opt/alt/python35/lib/python3.5/site-packages/sentry_sdk/__pycache__/worker.cpython-35.pyc



\
@sddlZddlmZmZddlmZmZddlmZmZddl	m
Z
eZGdddeZ
dS)N)ThreadLock)sleeptime)queuecheck_thread_support)loggerc@seZdZddZeddZddZddZd	d
ZddZ	d
ddZ
ddZddZddZ
d
S)BackgroundWorkercCs;ttjd|_t|_d|_d|_dS)N)rrQueue_queuer_lock_thread_thread_for_pid)selfr
/worker.py__init__s
	zBackgroundWorker.__init__cCs3|jtjkrdS|js&dS|jjS)NF)rosgetpidris_alive)rrrrrs
	zBackgroundWorker.is_alivecCs|js|jdS)N)rstart)rrrr_ensure_thread$s	zBackgroundWorker._ensure_threadc
Cst|}|j}|jjzHx=|jre|t}|dkrOdS|jjd|q)WdSWd|jjXdS)NrFtimeoutT)rr
all_tasks_doneacquireunfinished_taskswaitrelease)rrdeadlinerdelayrrr_timed_queue_join)s
	

z"BackgroundWorker._timed_queue_joincCse|jU|jsZtd|jdd|_|jjd|jjtj|_	WdQRXdS)Ntargetnamezraven-sentry.BackgroundWorkerT)
rrr_targetr	setDaemonrrrr)rrrrr8s
	
zBackgroundWorker.startc	CsMtjd|j0|jrB|jjtd|_d|_WdQRXdS)Nz"background worker got kill request)rdebugrrr

put_nowait_TERMINATORr)rrrrkillCs

		zBackgroundWorker.killNc
CsTtjd|j*|jr<|dkr<|j||WdQRXtjddS)Nz#background worker got flush requestgzbackground worker flushed)rr'rr_wait_flush)rrcallbackrrrflushLs


zBackgroundWorker.flushcCsktd|}|j|sg|jj}tjd||dk	rV||||j||dS)Ng?z%d event(s) pending on flush)minr"r
qsizerr')rrr,Zinitial_timeoutpendingrrrr+Ts
zBackgroundWorker._wait_flushcCs|j|jj|dS)N)rr
r()rr,rrrsubmit^s
zBackgroundWorker.submitcCsyxr|jj}zD|tkr"Py|Wn%tk
rTtjdddYnXWd|jjXtdqWdS)NzFailed processing jobexc_infoTr)r
getr)	Exceptionrerror	task_doner)rr,rrrr%cs
zBackgroundWorker._target)__name__
__module____qualname__rpropertyrrr"rr*r-r+r1r%rrrrr	s		
r	)r	threadingrrrrZsentry_sdk._compatrrZsentry_sdk.utilsrobjectr)r	rrrr<module>s		
Back to Directory File Manager