File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/zmq/green/__pycache__/poll.cpython-310.pyc
Back
o ;j� � @ sH d dl mZ d dlZd dlmZ d dlZd dlmZ G dd� de�ZdS )� )�annotationsN)�select)�Pollerc s. e Zd ZdZdZdd� Zd� fdd� Z� ZS ) �_Pollerz�Replacement for :class:`zmq.Poller` Ensures that the greened Poller below is used in calls to :meth:`zmq.Poller.poll`. gH�z�G�?c C s� g }g }g }| j D ]Z\}}t|tj�r|�|�tj�� q t|t�r%|}n t|d�r>zt|� � �}W n t y= td��w td|����|tj @ rO|�|� |tj@ rY|�|� |tj@ rc|�|� q |||fS )zdReturns three elements tuple with socket descriptors ready for gevent.select.select �filenoz(fileno() must return an valid integer fdzFSocket must be a 0MQ socket, an integer fd or have a fileno() method: )Zsockets� isinstance�zmqZSocket�append� getsockoptZFD�int�hasattrr � Exception� ValueError� TypeError�POLLIN�POLLOUT�POLLERR)�self�rlist�wlist�xlist�socket�flags�fd� r �B/opt/saltstack/salt/lib/python3.10/site-packages/zmq/green/poll.py�_get_descriptors s8 ��� � z_Poller._get_descriptors���c sP |du rd}|dk rd}d}d}d}|dkrt j�|d �}nd}z|zW| �� \}}} t� �d�}|s7|dkrD|W W |dkrC|�� S S t j�| j�}z(z t�|||� W n t jym } z||urc� W Y d}~nd}~ww W |�� n|�� w q+ t jy� } z||ur�� g W Y d}~W |dkr�|�� S S d}~ww |dkr�|�� w w )z�Overridden method to ensure that the green version of Poller is used. Behaves the same as :meth:`zmq.core.Poller.poll` Nr r g @�@) �geventZTimeout� start_newr �super�poll�cancel�_gevent_bug_timeoutr ) r �timeoutr r r Ztout�eventsZ_bug_timeout�t�� __class__r r r! 5 sV ������� ��� �z_Poller.poll)r )�__name__� __module__�__qualname__�__doc__r# r r! � __classcell__r r r'