<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ó
¿öYc           @@  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 d
 e f d „  ƒ  YZ d e
 e f d „  ƒ  YZ d S(   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    (   t   absolute_importN(   t   sleept   time(   t   AsyncTransport(   t   HTTPTransport(   t   Queuet   check_threadsi
   s   sentry.errorst   AsyncWorkerc           B@  sh   e  Z e ƒ  Z e d  „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 d „ Z d „  Z d „  Z RS(
   c         C@  sU   t  ƒ  t d ƒ |  _ t j ƒ  |  _ d  |  _ d  |  _ i | d 6|  _	 |  j
 ƒ  d  S(   Niÿÿÿÿt   shutdown_timeout(   R   R   t   _queuet	   threadingt   Lockt   _lockt   Nonet   _threadt   _thread_for_pidt   optionst   start(   t   selfR   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt   __init__   s    		c         C@  s/   |  j  t j ƒ  k r t S|  j o. |  j j ƒ  S(   N(   R   t   ost   getpidt   FalseR   t   is_alive(   R   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR   (   s    c         C@  s   |  j  ƒ  r d  S|  j ƒ  d  S(   N(   R   R   (   R   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt   _ensure_thread-   s    c         C@  sÎ   |  j  j ƒ  z¬ |  j ƒ  s  d  S|  j j |  j ƒ |  j d } t d | ƒ } |  j | ƒ s¯ |  j j	 ƒ  } d | GHd | GHt
 j d k r– d GHn d GH|  j | | ƒ n  d  |  _ Wd  |  j  j ƒ  Xd  S(   NR   gš™™™™™¹?s6   Sentry is attempting to send %i pending error messagess   Waiting up to %s secondst   nts   Press Ctrl-Break to quits   Press Ctrl-C to quit(   R   t   acquireR   R	   t
   put_nowaitt   _terminatorR   t   mint   _timed_queue_joint   qsizeR   t   nameR   R   t   release(   R   t   timeoutt   initial_timeoutt   size(    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt   main_thread_terminated2   s$    	c         C@  s€   t  ƒ  | } |  j } | j j ƒ  zH x= | j re | t  ƒ  } | d k rO t S| j j d | ƒ q) Wt SWd | j j ƒ  Xd S(   s‚   
        implementation of Queue.join which takes a 'timeout' argument

        returns true on success, false on timeout
        i    R"   N(	   R   R	   t   all_tasks_doneR   t   unfinished_tasksR   t   waitt   TrueR!   (   R   R"   t   deadlinet   queuet   delay(    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR   W   s    	c         C@  s   |  j  j ƒ  z] |  j ƒ  si t j d |  j d d ƒ |  _ |  j j t ƒ |  j j	 ƒ  t
 j ƒ  |  _ n  Wd |  j  j ƒ  t j |  j ƒ Xd S(   s)   
        Starts the task thread.
        t   targetR    s   raven.AsyncWorkerN(   R   R   R   R
   t   Threadt   _targetR   t	   setDaemonR)   R   R   R   R   R!   t   atexitt   registerR%   (   R   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR   o   s    c         C@  sj   |  j  j ƒ  zH |  j rT |  j j |  j ƒ |  j j d | ƒ d |  _ d |  _ n  Wd |  j  j	 ƒ  Xd S(   s5   
        Stops the task thread. Synchronous!
        R"   N(
   R   R   R   R	   R   R   t   joinR   R   R!   (   R   R"   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt   stop~   s    		c         O@  s'   |  j  ƒ  |  j j | | | f ƒ d  S(   N(   R   R	   R   (   R   t   callbackt   argst   kwargs(    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR+   Œ   s    
c         C@  s™   x’ t  r” |  j j ƒ  } z^ | |  j k r. Pn  | \ } } } y | | | Ž  Wn$ t k
 rt t j d d t  ƒn XWd  |  j j ƒ  Xt d ƒ q Wd  S(   Ns   Failed processing jobt   exc_infoi    (	   R)   R	   t   getR   t	   Exceptiont   loggert   errort	   task_doneR   (   R   t   recordR5   R6   R7   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR/      s    	N(   t   __name__t
   __module__t   objectR   t   DEFAULT_TIMEOUTR   R   R   R%   R   R   R   R4   R+   R/   (    (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyR      s   				%			t   ThreadedHTTPTransportc           B@  s5   e  Z d  d d d g Z d „  Z d „  Z d „  Z RS(   t   httpt   httpss   threaded+https   threaded+httpsc         C@  s6   t  |  d ƒ s  |  j j ƒ  r/ t ƒ  |  _ n  |  j S(   Nt   _worker(   t   hasattrRF   R   R   (   R   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt
   get_worker¥   s     c         C@  sK   y  t  t |  ƒ j | | | ƒ Wn t k
 r? } | | ƒ n X| ƒ  d  S(   N(   t   superRC   t   sendR:   (   R   t   urlt   datat   headerst
   success_cbt
   failure_cbt   e(    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt	   send_syncª   s
     c         C@  s)   |  j  ƒ  j |  j | | | | | ƒ d  S(   N(   RH   R+   RQ   (   R   RK   RL   RM   RN   RO   (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt
   async_send²   s    (   R?   R@   t   schemeRH   RQ   RR   (    (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyRC   ¡   s   		(   t   __doc__t
   __future__R    R1   t   loggingR
   R   R   R   t   raven.transport.baseR   t   raven.transport.httpR   t   raven.utils.compatR   R   RB   t	   getLoggerR;   RA   R   RC   (    (    (    sI   /opt/alt/python27/lib/python2.7/site-packages/raven/transport/threaded.pyt   <module>   s   ‡