Submit
Path:
~
/
/
proc
/
thread-self
/
root
/
opt
/
alt
/
python35
/
lib
/
python3.5
/
site-packages
/
raven
/
transport
/
__pycache__
/
File Content:
threaded.cpython-35.pyc
��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 �/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_join�qsize�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( TN)r r �all_tasks_doner �unfinished_tasks�waitr'