§
    Ètºf9  ã                   ó„   — d Z ddlmZ ddlmZ ddlmZ  e¦   «         Z ee¦  «         G d„ d¦  «        ¦   «         Z	d„ Z
d	S )
z>
Implementation of an in-memory worker that defers execution.
é    )Úimplementeré   )ÚIWorker)ÚQuitc                   ó(   — e Zd ZdZefd„Zd„ Zd„ ZdS )ÚMemoryWorkerz|
    An L{IWorker} that queues work for later performance.

    @ivar _quit: a flag indicating
    @type _quit: L{Quit}
    c                 óJ   — t          ¦   «         | _         |¦   «         | _        dS )z+
        Create a L{MemoryWorker}.
        N)r   Ú_quitÚ_pending)ÚselfÚpendings     úW/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/_threads/_memory.pyÚ__init__zMemoryWorker.__init__   s    € õ ‘V”VˆŒ
Ø˜™	œ	ˆŒˆˆó    c                 ól   — | j                              ¦   «          | j                             |¦  «         dS )z}
        Queue some work for to perform later; see L{createMemoryWorker}.

        @param work: The work to perform.
        N)r
   Úcheckr   Úappend)r   Úworks     r   ÚdozMemoryWorker.do"   s4   € ð 	Œ
×ÒÑÔÐØŒ×Ò˜TÑ"Ô"Ð"Ð"Ð"r   c                 óv   — | j                              ¦   «          | j                             t          ¦  «         dS )z#
        Quit this worker.
        N)r
   Úsetr   r   Ú
NoMoreWork)r   s    r   ÚquitzMemoryWorker.quit+   s2   € ð 	Œ
�ŠÑÔÐØŒ×Ò�ZÑ(Ô(Ð(Ð(Ð(r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úlistr   r   r   © r   r   r   r      sU   € € € € € ðð ð  $ð "ð "ð "ð "ð#ð #ð #ð)ð )ð )ð )ð )r   r   c                  ó2   ‡— ˆfd„} t          ¦   «         Š‰| fS )a  
    Create an L{IWorker} that does nothing but defer work, to be performed
    later.

    @return: a worker that will enqueue work to perform later, and a callable
        that will perform one element of that work.
    @rtype: 2-L{tuple} of (L{IWorker}, L{callable})
    c                  óŠ   •— ‰ j         sdS ‰ j         d         t          u rdS  ‰ j                              d¦  «        ¦   «          dS )NFr   T)r   r   Úpop)Úworkers   €r   Úperformz#createMemoryWorker.<locals>.perform=   sL   ø€ ØŒð 	Ø�5ØŒ?˜1Ô¥Ð+Ð+Ø�5ØˆŒ×Ò˜AÑÔÑ Ô Ð Øˆtr   )r   )r$   r#   s    @r   ÚcreateMemoryWorkerr%   3   s2   ø€ ðð ð ð ð õ ‰^Œ^€FØ�GÐÐr   N)r   Úzope.interfacer   Ú r   Ú_conveniencer   Úobjectr   r   r%   r   r   r   ú<module>r*      s«   ðð
ð ð
 'Ð &Ð &Ð &Ð &Ð &à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àˆV‰XŒX€
ð €ˆWÑÔð)ð )ð )ð )ð )ñ )ô )ñ Ôð)ð@ð ð ð ð r   