
    "hj	                         d dl Z d dlZd dlZ ej                  e      Z	 d dlZd dl	Z	 G d de
      Zy# e$ r d dlZY w xY w)    Nc                   N    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y)	TaskQueuec                     || _         || _        g | _        t        j                         | _        t        j                         | _        d | _	        d| _
        y )N )_TaskQueue__producer_TaskQueue__consumers_TaskQueue__threadsqueueQueue_TaskQueue__queue	threadingLock_TaskQueue__lock_TaskQueue__exc_info_TaskQueue__exc_stack)selfproducer	consumerss      M/root/.hermes/SkillClaw/.venv/lib/python3.12/site-packages/oss2/task_queue.py__init__zTaskQueue.__init__   sD    "$ {{}nn&    c                    | j                  t        j                  | j                               | j                  D ]3  }| j                  t        j                  | j
                  |f             5 | j                         r3| j                  D ]  }|j                  d        | j                         r3| j                  r=t        j                  dj                  | j                               | j                  d   y )N)target)r   args   z?An exception was thrown by producer or consumer, backtrace: {0})_TaskQueue__add_and_runr   Thread_TaskQueue__producer_funcr   _TaskQueue__consumer_func_TaskQueue__any_activer	   joinr   loggererrorformatr   )r   cts      r   runzTaskQueue.run   s    9++43G3GHI!! 	YAy//t7K7KSTRVWX	Y !^^ q	 ! ??LLZaabfbrbrst//!$$ r   c                 B    |J | j                   j                  |       y N)r   put)r   datas     r   r*   zTaskQueue.put.   s     r   c                 6    | j                   j                         S r)   )r   getr   s    r   r-   zTaskQueue.get2   s    ||!!r   c                 b    | j                   5  | j                  d u cd d d        S # 1 sw Y   y xY wr)   )r   r   r.   s    r   okzTaskQueue.ok5   s*    [[ 	+??d*	+ 	+ 	+s   %.c                 h    d|_         |j                          | j                  j                  |       y )NT)daemonstartr	   append)r   threads     r   __add_and_runzTaskQueue.__add_and_run9   s$    f%r   c                 :    t        d | j                  D              S )Nc              3   <   K   | ]  }|j                           y wr)   )is_alive).0r&   s     r   	<genexpr>z)TaskQueue.__any_active.<locals>.<genexpr>?   s     8A1::<8s   )anyr	   r.   s    r   __any_activezTaskQueue.__any_active>   s    8888r   c                     	 | j                  |        | j                          y #  | j                  t        j                                | j                          Y y xY wr)   )r   _TaskQueue__put_end_TaskQueue__on_exceptionsysexc_infor.   s    r   __producer_funczTaskQueue.__producer_funcA   sD    	OOD!
 NN		/NNs	   $ 5Ac                 j    	  ||        y #  | j                  t        j                                Y y xY wr)   )r@   rA   rB   )r   consumers     r   __consumer_funczTaskQueue.__consumer_funcJ   s)    	0TN	0/s    %2c                     t        t        | j                              D ]  }| j                  j	                  d         y r)   )rangelenr   r   r*   )r   is     r   	__put_endzTaskQueue.__put_endP   s3    s4++,- 	#ALLT"	#r   c                     | j                   5  | j                   || _        t        j                         | _        d d d        y # 1 sw Y   y xY wr)   )r   r   	traceback
format_excr   )r   rB   s     r   __on_exceptionzTaskQueue.__on_exceptionT   s@    [[ 	:&"*#,#7#7#9 	: 	: 	:s   -AAN)__name__
__module____qualname__r   r'   r*   r-   r0   r   r    r   r   r?   r@    r   r   r   r      s9    %"+&
90#:r   r   )r   rA   logging	getLoggerrP   r"   r   r
   ImportErrorrM   objectr   rS   r   r   <module>rX      sQ     
 			8	$ G: G:  s   4 	A A 