
    Ef4                     r    d Z ddlmZmZmZmZ ddlZddlZddlm	Z	 d Z
d Z G d d	e	j                        Zy)
z9Posix implementations of platform-specific functionality.    )absolute_importdivisionprint_functionwith_statementN   )	interfacec                     t        j                   | t         j                        }t        j                   | t         j                  |t         j                  z         y N)fcntlF_GETFDF_SETFD
FD_CLOEXECfdflagss     J/usr/lib/python3/dist-packages/zmq/eventloop/minitornado/platform/posix.pyset_close_execr      s5    KKEMM*E	KKEMM55+;+;#;<    c                     t        j                   | t         j                        }t        j                   | t         j                  |t        j                  z         y r
   )r   F_GETFLF_SETFLos
O_NONBLOCKr   s     r   _set_nonblockingr       s3    KKEMM*E	KKEMM52==#89r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)Wakerc                     t        j                         \  }}t        |       t        |       t        |       t        |       t        j                  |dd      | _        t        j                  |dd      | _        y )Nrbr   wb)r   piper   r   fdopenreaderwriter)selfrws      r   __init__zWaker.__init__&   sY    wwy1qqii4+ii4+r   c                 6    | j                   j                         S r
   )r"   filenor$   s    r   r)   zWaker.fileno/       {{!!##r   c                 6    | j                   j                         S r
   )r#   r)   r*   s    r   write_filenozWaker.write_fileno2   r+   r   c                 Z    	 | j                   j                  d       y # t        $ r Y y w xY w)N   x)r#   writeIOErrorr*   s    r   wakez
Waker.wake5   s+    	KKd# 		s    	**c                 `    	 	 | j                   j                         }|sy # t        $ r Y y w xY wr
   )r"   readr1   )r$   results     r   consumezWaker.consume;   s;    	))+   		s   ! ! 	--c                 l    | j                   j                          | j                  j                          y r
   )r"   closer#   r*   s    r   r8   zWaker.closeD   s"    r   N)	__name__
__module____qualname__r'   r)   r-   r2   r6   r8    r   r   r   r   %   s     ,$$r   r   )__doc__
__future__r   r   r   r   r   r    r   r   r   r   r<   r   r   <module>r@      s4   " @ P P  	 =
:
!IOO !r   