
    7Th                         S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJrJ	r
JrJr  S SKJr  SSKJr  / SQr " S S	\
5      r	 " S
 S\5      rg)    N)util)FullQueueSimpleQueue	_sentinel)assert_spawning   )dumps)r   r   r   c                   T   ^  \ rS rSrS	U 4S jjrS rS rS r\S 5       r	S r
SrU =r$ )
r      c                 ,   > [         TU ]  XS9  X l        g )N)maxsizectxsuper__init__	_reducers)selfr   reducersr   	__class__s       \/var/www/auris/envauris/lib/python3.13/site-packages/joblib/externals/loky/backend/queues.pyr   Queue.__init__   s    2!    c           	          [        U 5        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  U R                  4	$ N)
r   _ignore_epipe_maxsize_reader_writerr   _rlock_wlock_sem_opidr   s    r   __getstate__Queue.__getstate__$   sU    MMLLLLNNKKKKIIJJ

 
	
r   c           
          Uu	  U l         U l        U l        U l        U l        U l        U l        U l        U l        [        R                  S:  a  U R                  5         g U R                  5         g )N)   	   )r   r   r   r   r   r    r!   r"   r#   sysversion_info_reset_after_forkr   states     r   __setstate__Queue.__setstate__2   s]     
	
MLLNKKIJv%KKMr   c                    [         R                  " S5        U R                  R                  5         [        R
                  " [        R                  U R                  U R                  U R                  U R                  U R                  R                  U R                  U R                  U R                  U R                   4	SS9U l        SU R"                  l        [         R                  " S5        U R"                  R'                  5         [         R                  " S5        U R(                  [*        R,                  " 5       :H  nU R.                  (       dZ  U(       dS  [         R0                  " U R"                  [        R2                  [4        R6                  " U R"                  5      /SS9U l        [         R0                  " U [        R:                  U R                  U R                  /S	S9U l        g )
NzQueue._start_thread()QueueFeederThread)targetargsnameTzdoing self._thread.start()z... done self._thread.start())exitpriority
   )r   debug_bufferclear	threadingThreadr   _feed	_notempty_send_bytesr!   r   closer   r   _on_queue_feeder_errorr"   _threaddaemonstartr#   osgetpid_joincancelledFinalize_finalize_joinweakrefref_jointhread_finalize_close_close)r   created_by_this_processs     r   _start_threadQueue._start_threadD   sR   

*+ 	 '';;  """"++		
 %
 #

/0

23 #'**		";""+B#}}$$T\\*+	 D mm!!\\4>>*	
r   c	                 l   [         R                  " S5        UR                  n	UR                  n
UR                  nU R
                  n[        n[        R                  S:w  a  UR                  nUR                  nOS n  U	" 5          U (       d  U" 5         U
" 5           U" 5       nUUL a  [         R                  " S5        U" 5         g [        UUS9nUc	  U" U5        OU" 5          U" U5        W" 5         AAM[  ! U
" 5         f = f! W" 5         f = f! [         a     Of = f! [         a  nU(       a$  [        USS5      [        R                  :X  a   S nAg [         R                  " 5       (       a  [         R                   " SU 35         S nAg UR                  5         U" UW5         S nAOS nAff = fGM9  )Nz$starting thread to feed data to pipewin32z%feeder thread got sentinel -- exitingr   errnor   zerror in queue thread: )r   r:   acquirereleasewaitpopleftr   r*   platformr
   
IndexErrorBaseExceptiongetattrrW   EPIPE
is_exitinginfo)buffernotempty
send_bytes	writelockrB   r   ignore_epipeonerror	queue_semnacquirenreleasenwaitbpopleftsentinelwacquirewreleaseobjobj_es                      r   r?   Queue._feedv   s{    	

9:####>><<7" ((H ((HH)$
!J&j(? JJ'NO!G"  %S8<#+&t,$J+ *4 0 (
%  J$ !)
 "   $GAw$:ekk$I
 ??$$II 7s;<%%'AsOO$= sx   >D  C8 D  *D D %D -D 8	DD  	DD 
DD  DD   
F0*&F+3F+F++F0c                 ,    SSK nUR                  5         g)z
Private API hook called when feeding data in the background thread
raises an exception.  For overriding by concurrent.futures.
r   N)	traceback	print_exc)r   rs   rq   rv   s       r   rC   Queue._on_queue_feeder_error   s    
 	r   )rP   r   rN   r   r#   r   r   r    r"   rD   r!   r   )r   NN)__name__
__module____qualname____firstlineno__r   r%   r0   rR   staticmethodr?   rC   __static_attributes____classcell__r   s   @r   r   r      s9    "

$/
d A$ A$F r   r   c                   D   ^  \ rS rSrSU 4S jjrS rS rS rS rSr	U =r
$ )	r      c                 ,   > [         TU ]  US9  Xl        g )N)r   r   )r   r   r   r   s      r   r   SimpleQueue.__init__   s    S! "r   c                 l    U R                   R                  5         U R                  R                  5         g r   )r   rB   r   r$   s    r   rB   SimpleQueue.close   s"    r   c                     [        U 5        U R                  U R                  U R                  U R                  U R
                  4$ r   )r   r   r   r   r    r!   r$   s    r   r%   SimpleQueue.__getstate__   s7    LLLLNNKKKK
 	
r   c                 F    Uu  U l         U l        U l        U l        U l        g r   )r   r   r   r    r!   r.   s     r   r0   SimpleQueue.__setstate__   s%     	
LLNKKr   c                     [        XR                  S9nU R                  c  U R                  R	                  U5        g U R                     U R                  R	                  U5        S S S 5        g ! , (       d  f       g = f)NrV   )r
   r   r!   r   re   )r   rq   s     r   putSimpleQueue.put   sO    C..1;;LL##C('', s   	A..
A<)r   r   r    r!   r   )NN)ry   rz   r{   r|   r   rB   r%   r0   r   r~   r   r   s   @r   r   r      s!    "

- -r   r   )rG   r*   rW   rL   r=   multiprocessingr   multiprocessing.queuesr   r   mp_Queuer   mp_SimpleQueuer   multiprocessing.contextr   	reductionr
   __all__ r   r   <module>r      sM    
 
       4  +cH cL(-. (-r   