Your IP : 216.73.216.213
��Yu � @ s� d Z d d l m Z d d l Z d d l Z d d l Z d d l Z d d l m Z m Z d d l m
Z
d d l m Z d d l
m Z m Z d Z e j d � Z Gd
d � d e � Z Gd d
� d
e
e � Z d S)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)�sleep�time)�AsyncTransport)�
HTTPTransport)�Queue�
check_threads�
z
sentry.errorsc @ s� e Z d Z e � Z e d d � Z d d � Z d d � Z d d � Z d d
� Z
d d � Z d
d d � Z d d � Z
d d � Z d
S)�AsyncWorkerc C sT t � t d � | _ t j � | _ d | _ d | _ d | i | _ | j � d S)N� �shutdown_timeout���)
r r �_queue� threading�Lock�_lock�_thread�_thread_for_pid�options�start)�selfr � r �I/opt/alt/python35/lib/python3.5/site-packages/raven/transport/threaded.py�__init__ s zAsyncWorker.__init__c C s/ | j t j � k r d S| j o. | j j � S)NF)r �os�getpidr �is_alive)r r r r r ( s zAsyncWorker.is_alivec C s | j � r d S| j � d S)N)r r )r r r r �_ensure_thread- s zAsyncWorker._ensure_threadc
C s� | j j � z� | j � s d S| j j | j � | j d } t d | � } | j | � s� | j j � } t
d | � t
d | � t j d k r� t
d � n
t
d � | j | | � d | _
Wd | j j � Xd S)Nr g�������?z6Sentry is attempting to send %i pending error messageszWaiting up to %s seconds�ntzPress Ctrl-Break to quitzPress Ctrl-C to quit)r �acquirer r �
put_nowait�_terminatorr �min�_timed_queue_joinZqsize�printr �namer �release)r �timeoutZinitial_timeout�sizer r r �main_thread_terminated2 s$
z"AsyncWorker.main_thread_terminatedc
C s� t � | } | j } | j j � zH x= | j re | t � } | d k rO d S| j j d | � q) Wd SWd | j j � Xd S)z�
implementation of Queue.join which takes a 'timeout' argument
returns true on success, false on timeout
r Fr'