+
    üÐj�  ã                  ó¾   € R t ^ RIHt ^ RIHtHt ^ RIHtHt ^ RI	H
t
 ^RIHt ^RIHt  ! R R]4      t]P                   t]
! ]4       ! R	 R
4      4       tR R ltR# )z>
Implementation of an in-memory worker that defers execution.
)Úannotations)ÚEnumÚauto)ÚCallableÚLiteral)Úimplementer)ÚQuit)ÚIExclusiveWorkerc                  ó$   € ] tR t^t]! 4       tRtR# )ÚNoMore© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   ÚWorkÚ__static_attributes__r   ó    Ú:/usr/lib/python3/dist-packages/twisted/_threads/_memory.pyr   r      s	   † Ù‹6„Dr   r   c                  óD   € ] tR t^tRt]3R R lltR R ltR R ltRt	R	# )
ÚMemoryWorkerzl
An L{IWorker} that queues work for later performance.

@ivar _quit: a flag indicating
@type _quit: L{Quit}
c               ó    € V ^8„  d   QhRRRR/# )é   Úpendingz?Callable[[], list[Callable[[], object] | Literal[NoMore.Work]]]ÚreturnÚNoner   )Úformats   "r   Ú__annotate__ÚMemoryWorker.__annotate__$   s   € ÷ "ñ "àPð"ð 
ñ"r   c                ó<   € \        4       V n        V! 4       V n        R# )z
Create a L{MemoryWorker}.
N)r   Ú_quitÚ_pending)Úselfr   s   &&r   Ú__init__ÚMemoryWorker.__init__$   s   € ô “VˆŒ
Ù›	ˆŽr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚworkzCallable[[], object]r   r   r   )r   s   "r   r   r   .   s   € ÷ #ñ #Ð+ð #°ñ #r   c                óp   € V P                   P                  4        V P                  P                  V4       R# )ze
Queue some work for to perform later; see L{createMemoryWorker}.

@param work: The work to perform.
N)r    Úcheckr!   Úappend)r"   r&   s   &&r   ÚdoÚMemoryWorker.do.   s&   € ð 	�
‰
×ÑÔØ�‰×Ñ˜TÖ"r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   7   s   € ÷ )ñ )�dñ )r   c                óx   € V P                   P                  4        V P                  P                  \        4       R# )z
Quit this worker.
N)r    Úsetr!   r)   Ú
NoMoreWork)r"   s   &r   ÚquitÚMemoryWorker.quit7   s$   € ð 	�
‰
�‰ÔØ�‰×ÑœZÖ(r   )r!   r    N)
r   r   r   r   Ú__doc__Úlistr#   r*   r0   r   r   r   r   r   r      s"   † ñð TX÷"õ#÷)ñ )r   r   c               ó   € V ^8„  d   QhRR/# )r   r   z'tuple[MemoryWorker, Callable[[], bool]]r   )r   s   "r   r   r   ?   s   € ÷ ñ ÐCñ r   c                 ó2   a€ R V3R llp \        4       oSV 3# )zÊ
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.
c               ó   € V ^8„  d   QhRR/# )r   r   Úboolr   )r   s   "r   r   Ú(createMemoryWorker.<locals>.__annotate__H   s   € ÷ ñ �Tñ r   c                 ó²   <€ SP                   '       g   R # SP                   ^ ,          p V \        J d   R # SP                   P                  ^ 4       V ! 4        R# )FT)r!   r/   Úpop)ÚpeekÚworkers    €r   ÚperformÚ#createMemoryWorker.<locals>.performH   sB   ø€ Ø��ˆÙØ�‰˜qÕ!ˆØ”:ÓÙØ�‰×Ñ˜AÔÙŒÙr   )r   )r=   r<   s    @r   ÚcreateMemoryWorkerr?   ?   s!   ø€ ÷ð ô ‹^€FØ�GÐÐr   N)r2   Ú
__future__r   Úenumr   r   Útypingr   r   Úzope.interfacer   Ú_conveniencer   Ú	_ithreadsr	   r   r   r/   r   r?   r   r   r   Ú<module>rF      sZ   ðñ
õ #ç ß $å &å Ý 'ôˆTô ð �[‰[€
ñ ÐÓ÷ )ð  )ó ð )÷Fr   