File: //usr/lib64/python3.6/site-packages/zmq/auth/__pycache__/thread.cpython-36.pyc
3
VS�_� � @ s� d Z ddlZddlmZmZ ddlZddlmZ ddlm Z m
Z
ddlZddlm
Z
G dd � d e�Zd
d� ZeG dd
� d
e��Zd
gZdS )z>ZAP Authenticator in a Python Thread.
.. versionadded:: 14.1
� N)�Thread�Event)�jsonapi)�b�u� )�
Authenticatorc s: e Zd ZdZd� fdd� Zdd� Zdd � Zd
d� Z� ZS )
�AuthenticationThreadziA Thread for running a zmq Authenticator
This is run in the background by ThreadedAuthenticator
�utf-8Nc sz t t| �j� |ptjj� | _|| _|p0tj d� | _
}t� | _|pPt
|||d�| _|jtj�| _d| j_| jj|� d S )Nzzmq.auth)�encoding�logr )�superr �__init__�zmq�Context�instance�contextr �loggingZ getLoggerr r �startedr �
authenticator�socket�PAIR�pipe�lingerZconnect)�selfr Zendpointr r r )� __class__� �/usr/lib64/python3.6/thread.pyr s zAuthenticationThread.__init__c C s | j j� | jj� | j j}tj� }|j| jtj � |j|tj � x�yt
|j� �}W n tjk
rl P Y nX | j|kr�|| j tj kr�xBy| jj
tjd�}W n tjk
r� P Y nX | j|�}|r�P q�W |r�P ||krD|| tj krD| j� qDW | jj� | j j� dS )z*Start the Authentication Agent thread task)�flagsN)r �startr �set�
zap_socketr ZPoller�registerr ZPOLLIN�dictZpollZZMQError�recv_multipartZNOBLOCKZAgain�_handle_pipe�_handle_zap�close�stop)r ZzapZpollerZsocks�msg� terminater r r �run&