File: //opt/alt/python37/lib/python3.7/site-packages/fluent/__pycache__/asyncsender.cpython-37.pyc
B
��fZ � @ s� d dl Z d dlmZmZmZ d dlmZ d dlmZ ddgZ dZ
dZe� Z
dad d
� Zdd� Zd
d� Zdd� ZG dd� dej�ZdS )� N)�Empty�Full�Queue)�sender)� EventTimer �FluentSender�d Fc C s | a dS )z4[For testing] Function to set global sender directlyN)�_global_sender)r � r
�C/opt/alt/python37/lib/python3.7/site-packages/fluent/asyncsender.py�_set_global_sender s r c K s t | f|�ad S )N)r r )�tag�kwargsr
r
r �setup s r c C s t S )N)r r
r
r
r �get_global_sender s r c C s t � �� d S )N)r �closer
r
r
r r s r c s� e Zd Zddddddddeedf� fdd� Zdd
d�Zedd
� �Zedd� �Z edd� �Z
dd� Z� fdd�Zdd� Z
dd� Z� ZS )r � localhosti�^ i g @FNc
s� t � jf ||||||||| d� |
�� |
| _|| _|rB|rB|| _n| j| _t�� | _d| _ t
|
d�| _tj| j
dt| � d�| _d| j_| j�� dS )z~
:param kwargs: This kwargs argument is not used in __init__. This will be removed in the next major version.
) r
�host�port�bufmax�timeout�verbose�buffer_overflow_handler�nanosecond_precision�msgpack_kwargsF)�maxsizezAsyncFluentSender %d)�target�nameTN)�super�__init__�_queue_maxsize�_queue_circular�_queue_overflow_handler�_queue_overflow_handler_default� threading�EventZ
_thread_guard�_closedr �_queue�Thread�
_send_loop�id�_send_thread�daemon�start)�selfr
r r r r r r r r �
queue_maxsize�queue_circularZqueue_overflow_handlerr )� __class__r
r r % s.
zFluentSender.__init__Tc C sp | j �` | jrd S d| _|sLx.y| jjdd� W q tk
rF P Y qX qW | j�t� | j�� W d Q R X d S )NTF)�block) �lockr&