Your IP : 18.223.209.114


Current Path : /opt/alt/python27/lib/python2.7/site-packages/raven/transport/
Upload File :
Current File : //opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyc

�
��Yc@@s�dZddlmZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZddl
mZmZdZejd	�Zd
efd��YZde
efd
��YZdS(s�
raven.transport.threaded
~~~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
i(tabsolute_importN(tsleepttime(tAsyncTransport(t
HTTPTransport(tQueuet
check_threadsi
s
sentry.errorstAsyncWorkercB@sheZe�Zed�Zd�Zd�Zd�Zd�Z	d�Z
d	d�Zd�Z
d�ZRS(
cC@sUt�td�|_tj�|_d|_d|_i|d6|_	|j
�dS(Ni����tshutdown_timeout(RRt_queuet	threadingtLockt_locktNonet_threadt_thread_for_pidtoptionststart(tselfR((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt__init__s		
cC@s/|jtj�krtS|jo.|jj�S(N(RtostgetpidtFalseRtis_alive(R((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR(scC@s|j�rdS|j�dS(N(RR(R((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt_ensure_thread-scC@s�|jj�z�|j�s dS|jj|j�|jd}td|�}|j|�s�|jj	�}d|GHd|GHt
jdkr�dGHndGH|j||�nd|_
Wd|jj�XdS(NRg�������?s6Sentry is attempting to send %i pending error messagessWaiting up to %s secondstntsPress Ctrl-Break to quitsPress Ctrl-C to quit(RtacquireRR	t
put_nowaitt_terminatorRtmint_timed_queue_jointqsizeRtnameR
Rtrelease(Rttimeouttinitial_timeouttsize((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pytmain_thread_terminated2s$

	
cC@s�t�|}|j}|jj�zHx=|jre|t�}|dkrOtS|jjd|�q)WtSWd|jj�XdS(s�
        implementation of Queue.join which takes a 'timeout' argument

        returns true on success, false on timeout
        iR"N(	RR	tall_tasks_doneRtunfinished_tasksRtwaittTrueR!(RR"tdeadlinetqueuetdelay((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyRWs
	

cC@s�|jj�z]|j�sitjd|jdd�|_|jjt�|jj	�t
j�|_nWd|jj
�tj|j�XdS(s)
        Starts the task thread.
        ttargetR sraven.AsyncWorkerN(RRRR
tThreadt_targetRt	setDaemonR)RRRRR!tatexittregisterR%(R((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyRos


cC@sj|jj�zH|jrT|jj|j�|jjd|�d|_d|_nWd|jj	�XdS(s5
        Stops the task thread. Synchronous!
        R"N(
RRRR	RRtjoinR
RR!(RR"((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pytstop~s
		cO@s'|j�|jj|||f�dS(N(RR	R(Rtcallbacktargstkwargs((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR+�s
cC@s�x�tr�|jj�}z^||jkr.Pn|\}}}y|||�Wn$tk
rttjddt�nXWd|jj�Xtd�qWdS(NsFailed processing jobtexc_infoi(	R)R	tgetRt	Exceptiontloggerterrort	task_doneR(RtrecordR5R6R7((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR/�s	
N(t__name__t
__module__tobjectRtDEFAULT_TIMEOUTRRRR%RRR
R4R+R/(((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyRs				%			tThreadedHTTPTransportcB@s5eZddddgZd�Zd�Zd�ZRS(thttpthttpss
threaded+httpsthreaded+httpscC@s6t|d�s |jj�r/t�|_n|jS(Nt_worker(thasattrRFRR(R((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt
get_worker�s cC@sKy tt|�j|||�Wntk
r?}||�nX|�dS(N(tsuperRCtsendR:(Rturltdatatheaderst
success_cbt
failure_cbte((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt	send_sync�s
 cC@s)|j�j|j|||||�dS(N(RHR+RQ(RRKRLRMRNRO((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt
async_send�s(R?R@tschemeRHRQRR(((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyRC�s		(t__doc__t
__future__RR1tloggingR
RRRtraven.transport.baseRtraven.transport.httpRtraven.utils.compatRRRBt	getLoggerR;RARRC(((sI/opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt<module>s�

?>