
    vg/                         d dl Z d dlZ G d d          Z G d de          Z G d de          Z G d d	e          Zd
 Zd Z e            reZdS  e            reZdS eZdS )    Nc                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )
BasePollerc                 <    || _         |                                  d S N)options
initialize)selfr   s     N/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/supervisor/poller.py__init__zBasePoller.__init__   s        c                     d S r    r	   s    r
   r   zBasePoller.initialize
       r   c                     t           r   NotImplementedErrorr	   fds     r
   register_readablezBasePoller.register_readable       !!r   c                     t           r   r   r   s     r
   register_writablezBasePoller.register_writable   r   r   c                     t           r   r   r   s     r
   unregister_readablezBasePoller.unregister_readable   r   r   c                     t           r   r   r   s     r
   unregister_writablezBasePoller.unregister_writable   r   r   c                     t           r   r   )r	   timeouts     r
   pollzBasePoller.poll   r   r   c                     d S r   r   r   s    r
   before_daemonizezBasePoller.before_daemonize   r   r   c                     d S r   r   r   s    r
   after_daemonizezBasePoller.after_daemonize   r   r   c                     d S r   r   r   s    r
   closezBasePoller.close"   r   r   N)__name__
__module____qualname__r   r   r   r   r   r   r    r"   r$   r&   r   r   r
   r   r      s            " " "" " "" " "" " "" " "        r   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
SelectPollerc                 F    t           | _        |                                  d S r   )select_select_init_fdsetsr   s    r
   r   zSelectPoller.initialize(   s!    r   c                 :    | j                             |           d S r   )	readablesaddr   s     r
   r   zSelectPoller.register_readable,       2r   c                 :    | j                             |           d S r   )	writablesr2   r   s     r
   r   zSelectPoller.register_writable/   r3   r   c                 :    | j                             |           d S r   )r1   discardr   s     r
   r   z SelectPoller.unregister_readable2       r"""""r   c                 :    | j                             |           d S r   )r5   r7   r   s     r
   r   z SelectPoller.unregister_writable5   r8   r   c                 .    |                                   d S r   )r/   r   s    r
   unregister_allzSelectPoller.unregister_all8   s    r   c                    	 | j                             | j        | j        g |          \  }}}n# t          j        $ r}|j        d         t          j        k    r(| j        j	        
                    d           g g fcY d }~S |j        d         t          j        k    r<| j        j	        
                    d           |                                  g g fcY d }~S  d }~ww xY w||fS )Nr   EINTR encountered in pollzEBADF encountered in poll)r.   r-   r1   r5   errorargserrnoEINTRr   loggerblatherEBADFr;   )r	   r   rwxerrs         r
   r    zSelectPoller.poll;   s    	l))G GAq!!
 | 	 	 	x{ek))#++,GHHH2vx{ek))#++,GHHH##%%%2v	 !ts-   +. C=C:C ACCCCc                 R    t                      | _        t                      | _        d S r   )setr1   r5   r   s    r
   r/   zSelectPoller._init_fdsetsM   s    r   N)r'   r(   r)   r   r   r   r   r   r;   r    r/   r   r   r
   r+   r+   &   s              # # ## # #    $    r   r+   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )

PollPollerc                     t          j                    | _        t           j        t           j        z  t           j        z  | _        t           j        | _        t                      | _
        t                      | _        d S r   )r-   r    _pollerPOLLINPOLLPRIPOLLHUPREADPOLLOUTWRITErJ   r1   r5   r   s    r
   r   zPollPoller.initializeS   sI    {}}MFN2V^C	^
r   c                 z    | j                             || j                   | j                            |           d S r   )rN   registerrR   r1   r2   r   s     r
   r   zPollPoller.register_readableZ   s8    b$),,,2r   c                 z    | j                             || j                   | j                            |           d S r   )rN   rV   rT   r5   r2   r   s     r
   r   zPollPoller.register_writable^   s8    b$*---2r   c                     | j                             |           | j                            |           || j        v r"| j                            || j                   d S d S r   )r1   r7   rN   
unregisterr5   rV   rT   r   s     r
   r   zPollPoller.unregister_readableb   sc    r"""###L!!"dj11111  r   c                     | j                             |           | j                            |           || j        v r"| j                            || j                   d S d S r   )r5   r7   rN   rY   r1   rV   rR   r   s     r
   r   zPollPoller.unregister_writableh   sc    r"""###L!!"di00000  r   c                     |                      |          }g g }}|D ]Z\  }}|                     ||          r|| j        z  r|                    |           || j        z  r|                    |           [||fS r   )	_poll_fds_ignore_invalidrR   appendrT   )r	   r   fdsr1   r5   r   	eventmasks          r
   r    zPollPoller.polln   s    nnW%%!29	  	% 	%MB	##B	22 49$ %  $$$4:% %  $$$)##r   c                     	 | j                             |dz            S # t          j        $ rG}|j        d         t
          j        k    r&| j        j        	                    d           g cY d }~S  d }~ww xY w)N  r   r=   )
rN   r    r-   r>   r?   r@   rA   r   rB   rC   )r	   r   rH   s      r
   r\   zPollPoller._poll_fdsz   s    	<$$Wt^444| 	 	 	x{ek))#++,GHHH								s     A5;A0)A5/A00A5c                     |t           j        z  rP| j                            |           | j                            |           | j                            |           dS dS )NTF)r-   POLLNVALrN   rY   r1   r7   r5   )r	   r   r`   s      r
   r]   zPollPoller._ignore_invalid   s_    v& 	
 L##B'''N""2&&&N""2&&&4ur   N)r'   r(   r)   r   r   r   r   r   r    r\   r]   r   r   r
   rL   rL   Q   s              2 2 21 1 1
$ 
$ 
$  
 
 
 
 
r   rL   c                   R    e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )KQueuePollerz.
    Wrapper for select.kqueue()/kevent()
    rb   c                     t          j                    | _        t                      | _        t                      | _        d S r   )r-   kqueue_kqueuerJ   r1   r5   r   s    r
   r   zKQueuePoller.initialize   s)    }r   c                     | j                             |           t          j        |t          j        t          j                  }|                     ||           d S N)filterflags)r1   r2   r-   keventKQ_FILTER_READ	KQ_EV_ADD_kqueue_controlr	   r   rn   s      r
   r   zKQueuePoller.register_readable   sW    2r&*?%+%57 7 7R(((((r   c                     | j                             |           t          j        |t          j        t          j                  }|                     ||           d S rk   )r5   r2   r-   rn   KQ_FILTER_WRITErp   rq   rr   s      r
   r   zKQueuePoller.register_writable   sW    2r&*@%+%57 7 7R(((((r   c                     t          j        |t           j        t           j                  }| j                            |           |                     ||           d S rk   )r-   rn   ro   KQ_EV_DELETEr1   r7   rq   rr   s      r
   r   z KQueuePoller.unregister_readable   sW    r&*?%+%8: : :r"""R(((((r   c                     t          j        |t           j        t           j                  }| j                            |           |                     ||           d S rk   )r-   rn   rt   rv   r5   r7   rq   rr   s      r
   r   z KQueuePoller.unregister_writable   sW    r&*@%+%8: : :r"""R(((((r   c                     	 | j                             |gd           d S # t          $ rD}|j        t          j        k    r#| j        j                            d|z             n Y d }~d S d }~ww xY w)Nr   z7EBADF encountered in kqueue. Invalid file descriptor %s)ri   controlOSErrorr@   rD   r   rB   rC   )r	   r   rn   r>   s       r
   rq   zKQueuePoller._kqueue_control   s    	L  &1----- 	 	 	{ek))#++ -IKM-N O O O O O O O O O O	s     
A.9A))A.c                    g g }}	 | j                             d | j        |          }nP# t          $ rC}|j        t          j        k    r(| j        j                            d           ||fcY d }~S  d }~ww xY w|D ]`}|j	        t          j        k    r|                    |j                   |j	        t          j        k    r|                    |j                   a||fS )Nr=   )ri   ry   
max_eventsrz   r@   rA   r   rB   rC   rl   r-   ro   r^   identrt   )r	   r   r1   r5   keventsr>   rn   s          r
   r    zKQueuePoller.poll   s    !29		l**4'JJGG 	 	 	{ek))#++,GHHH )+++++++		  	/ 	/F} 555  ...} 666  ...)##s    !( 
A57A0)A5/A00A5c                 .    |                                   d S r   )r&   r   s    r
   r"   zKQueuePoller.before_daemonize   s    

r   c                     t          j                    | _        | j        D ]}|                     |           | j        D ]}|                     |           d S r   )r-   rh   ri   r1   r   r5   r   r   s     r
   r$   zKQueuePoller.after_daemonize   si    }. 	' 	'B""2&&&&. 	' 	'B""2&&&&	' 	'r   c                 F    | j                                          d | _         d S r   )ri   r&   r   s    r
   r&   zKQueuePoller.close   s!    r   N)r'   r(   r)   __doc__r|   r   r   r   r   r   rq   r    r"   r$   r&   r   r   r
   rf   rf      s          J  
) ) )) ) )) ) )) ) )  $ $ $&  ' ' '    r   rf   c                  ,    t          t          d          S )Nr    hasattrr-   r   r   r
   implements_pollr      s    66"""r   c                  ,    t          t          d          S )Nrh   r   r   r   r
   implements_kqueuer      s    68$$$r   )	r-   r@   r   r+   rL   rf   r   r   Pollerr   r   r
   <module>r      s%           D) ) ) ) ): ) ) )V< < < < < < < <|M M M M M: M M M^# # #% % %  FFF_ FFFFFFr   