Your IP : 216.73.216.61


Current Path : /opt/alt/python35/lib/python3.5/site-packages/raven/transport/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/raven/transport/__pycache__/gevent.cpython-35.pyc



��Yz�@s�dZddlmZddlmZddlmZyOddlZyddlm	Z	Wn"e
k
r}ddlm	Z	YnXdZWne
k
r�dZYnXGdd	�d	ee�Z
dS)
z�
raven.transport.gevent
~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
�)�absolute_import)�AsyncTransport)�
HTTPTransportN)�	SemaphoreTcsOeZdZddgZd�fdd�Z�fdd�Zdd	�Z�S)
�GeventedHTTPTransportzgevent+httpzgevent+https�dcs>tstd��t|�|_tt|�j||�dS)Nz&GeventedHTTPTransport requires gevent.)�
has_gevent�ImportErrorr�_lock�superr�__init__)�selfZmaximum_outstanding_requests�args�kwargs)�	__class__��G/opt/alt/python35/lib/python3.5/site-packages/raven/transport/gevent.pyrszGeventedHTTPTransport.__init__csJ�jj�tjtt��j|||�j���fdd��S)z?
        Spawn an async request to a remote webserver.
        cs�j|���S)N)�_done)�x)�
failure_cbr
�
success_cbrr�<lambda>.sz2GeventedHTTPTransport.async_send.<locals>.<lambda>)r
�acquire�gevent�spawnrr�send�link)r
�url�data�headersrr)r)rr
rr�
async_send%s
z GeventedHTTPTransport.async_sendcGs4|jj�|j�r#|�n
||j�dS)N)r
�releaseZ
successful�	exception)r
Zgreenletrrrrrrr0s

zGeventedHTTPTransport._done)�__name__�
__module__�__qualname__�schemerr rrr)rrrsr)�__doc__�
__future__rZraven.transport.baserZraven.transport.httprrZgevent.lockrr	Zgevent.corosrrrrrr�<module>s