
    Yf                     X    d dl Z d dlZd dlmZmZmZmZ  ed      Z G d dee         Zy)    N)AnyGenericOptionalTypeVarTc                   \    e Zd ZdeddfdZdee   ddfdZdee   fdZddZ	dd	Z
dd
Zy)ScaleneSigQueueprocessreturnNc                     t        j                         | _         || _        d | _        t	        j
                         | _        y )N)queueSimpleQueuer
   thread	threadingRLocklock)selfr
   s     X/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/scalene/scalene_sigqueue.py__init__zScaleneSigQueue.__init__	   s.    5:5F5F5H
26OO%	    itemc                 :    | j                   j                  |       y)zAdd an item to the queue.N)r   putr   r   s     r   r   zScaleneSigQueue.put   s    

tr   c                 6    | j                   j                         S )zGet one item from the queue.)r   getr   s    r   r   zScaleneSigQueue.get   s    zz~~r   c                     | j                   sAt        j                  | j                  d      | _         | j                   j	                          yy)zStart processing.T)targetdaemonN)r   r   Threadrunstartr   s    r   r#   zScaleneSigQueue.start   s8     {{#**$((4HDKKK r   c                     | j                   r=| j                  j                  d       | j                   j                          d| _         yy)zStop processing.N)r   r   r   joinr   s    r   stopzScaleneSigQueue.stop   s7    ;;JJNN4  KKDK r   c                     	 | j                   j                         }|y| j                  5   | j                  |  ddd       B# 1 sw Y   
xY w)z_Run the function processing items until stop is called.

        Executed in a separate thread.N)r   r   r   r
   r   s     r   r"   zScaleneSigQueue.run'   sN     ::>>#D| $d#$	 $ $s   AA)r   N)__name__
__module____qualname__r   r   r   r   r   r   r#   r&   r"    r   r   r	   r	      sK    & & &   Xa[   	$r   r	   )	r   r   typingr   r   r   r   r   r	   r+   r   r   <module>r-      s*      2 2CL($gaj ($r   