<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

])                 @   s,  d  d d g Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m	 Z	 m
 Z
 d d l Z d d l m Z d d l m Z d d	 l m Z m Z m Z m Z m Z d d
 l m Z Gd d    d  e  Z e   Z Gd d   d e  Z Gd d   d e  Z d S)QueueSimpleQueueJoinableQueue    N)EmptyFull   )
connection)context)debuginfoFinalizeregister_after_fork
is_exiting)ForkingPicklerc               @   s	  e  Z d  Z d d d  Z d d   Z d d   Z d d	   Z d
 d d d  Z d
 d d d  Z d d   Z	 d d   Z
 d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d  d!   Z e d" d#    Z e d$ d%    Z e d& d'    Z d S)(r   r   c            C   s   | d k r d d l  m } | |  _ t j d d  \ |  _ |  _ | j   |  _ t	 j
   |  _ t j d k r| d  |  _ n | j   |  _ | j |  |  _ d |  _ |  j   t j d k r t |  t j  d  S)Nr   r   )SEM_VALUE_MAXduplexFwin32)synchronizer   _maxsizer   Pipe_reader_writerLock_rlockosgetpid_opidsysplatform_wlockBoundedSemaphore_sem_ignore_epipe_after_forkr   r   )selfmaxsizectx r'   +/opt/alt/python35/lib64/python3.5/queues.py__init__$   s    		
zQueue.__init__c             C   sA   t  j |   |  j |  j |  j |  j |  j |  j |  j |  j	 f S)N)
r	   assert_spawningr"   r   r   r   r   r   r!   r   )r$   r'   r'   r(   __getstate__9   s    zQueue.__getstate__c          	   C   sD   | \ |  _  |  _ |  _ |  _ |  _ |  _ |  _ |  _ |  j   d  S)N)	r"   r   r   r   r   r   r!   r   r#   )r$   stater'   r'   r(   __setstate__>   s    6zQueue.__setstate__c             C   s   t  d  t j t j    |  _ t j   |  _ d  |  _ d  |  _	 d |  _
 d |  _ d  |  _ |  j j |  _ |  j j |  _ |  j j |  _ d  S)NzQueue._after_fork()F)r
   	threading	Conditionr   	_notemptycollectionsdeque_buffer_thread_jointhread_joincancelled_closed_closer   
send_bytes_send_bytesr   
recv_bytes_recv_bytespoll_poll)r$   r'   r'   r(   r#   C   s    
					zQueue._after_forkTNc          	   C   sf   |  j  j | |  s t  |  j ; |  j d  k r> |  j   |  j j |  |  j j   Wd  QRXd  S)N)	r!   acquirer   r0   r4   _start_threadr3   appendnotify)r$   objblocktimeoutr'   r'   r(   putP   s    

z	Queue.putc          
   C   s   | r? | d  k r? |  j   |  j   } Wd  QRX|  j j   n | rU t j   | } |  j  j | |  sp t  zj | r | t j   } | d k  s |  j |  r t  n |  j   s t  |  j   } |  j j   Wd  |  j  j   Xt j	 |  S)Nr   )
r   r<   r!   releasetimer?   r   r>   r   loads)r$   rD   rE   resdeadliner'   r'   r(   get[   s&    
	z	Queue.getc             C   s   |  j  |  j j j   S)N)r   r!   _semlock
_get_value)r$   r'   r'   r(   qsizes   s    zQueue.qsizec             C   s   |  j    S)N)r>   )r$   r'   r'   r(   emptyw   s    zQueue.emptyc             C   s   |  j  j j   S)N)r!   rM   _is_zero)r$   r'   r'   r(   fullz   s    z
Queue.fullc             C   s   |  j  d  S)NF)rL   )r$   r'   r'   r(   
get_nowait}   s    zQueue.get_nowaitc             C   s   |  j  | d  S)NF)rF   )r$   rC   r'   r'   r(   
put_nowait   s    zQueue.put_nowaitc             C   sA   d |  _  z |  j j   Wd  |  j } | r< d  |  _ |   Xd  S)NT)r7   r   closer8   )r$   rU   r'   r'   r(   rU      s    			zQueue.closec             C   s!   t  d  |  j r |  j   d  S)NzQueue.join_thread())r
   r5   )r$   r'   r'   r(   join_thread   s    
	zQueue.join_threadc             C   s=   t  d  d |  _ y |  j j   Wn t k
 r8 Yn Xd  S)NzQueue.cancel_join_thread()T)r
   r6   r5   cancelAttributeError)r$   r'   r'   r(   cancel_join_thread   s    
	zQueue.cancel_join_threadc          
   C   s   t  d  |  j j   t j d t j d |  j |  j |  j |  j	 |  j
 j |  j f d d  |  _ d |  j _ t  d  |  j j   t  d  |  j s t |  j t j t j |  j  g d	 d |  _ t |  t j |  j |  j g d	 d |  _ d  S)NzQueue._start_thread()targetargsnameZQueueFeederThreadTzdoing self._thread.start()z... done self._thread.start()exitpriority   
   )r
   r3   clearr.   Threadr   _feedr0   r:   r   r   rU   r"   r4   daemonstartr6   r   _finalize_joinweakrefrefr5   _finalize_closer8   )r$   r'   r'   r(   r@      s(    
		

		zQueue._start_threadc             C   sD   t  d  |    } | d  k	 r6 | j   t  d  n
 t  d  d  S)Nzjoining queue threadz... queue thread joinedz... queue thread already dead)r
   join)Ztwrthreadr'   r'   r(   rf      s    
	
zQueue._finalize_joinc          	   C   s3   t  d  |  |  j t  | j   Wd  QRXd  S)Nztelling queue thread to quit)r
   rA   	_sentinelrB   )buffernotemptyr'   r'   r(   ri      s    
zQueue._finalize_closec             C   s  t  d  | j } | j } | j } |  j }	 t }
 t j d k rX | j } | j } n d  } x:y |   z |  s{ |   Wd  |   Xy} xv |	   } | |
 k r t  d  |   d  St j	 |  } | d  k r | |  q |   z | |  Wd  |   Xq WWn t
 k
 rYn XWqa t k
 r} zZ | rTt | d d  t j k rTd  St   rnt d |  d  Sd d  l } | j   WYd  d  } ~ Xqa Xqa Wd  S)Nz$starting thread to feed data to piper   z%feeder thread got sentinel -- exitingerrnor   zerror in queue thread: %s)r
   r?   rG   waitpopleftrl   r   r   r   dumps
IndexError	Exceptiongetattrro   ZEPIPEr   r   	traceback	print_exc)rm   rn   r9   Z	writelockrU   Zignore_epipeZnacquireZnreleaseZnwaitZbpopleftsentinelZwacquireZwreleaserC   erv   r'   r'   r(   rc      sR    
						
	!	zQueue._feed)__name__
__module____qualname__r)   r+   r-   r#   rF   rL   rO   rP   rR   rS   rT   rU   rV   rY   r@   staticmethodrf   ri   rc   r'   r'   r'   r(   r   "   s$   

c               @   sa   e  Z d  Z d d d  Z d d   Z d d   Z d d	 d
 d  Z d d   Z d d   Z d	 S)r   r   c            C   s;   t  j |  | d | | j d  |  _ | j   |  _ d  S)Nr&   r   )r   r)   	Semaphore_unfinished_tasksr/   _cond)r$   r%   r&   r'   r'   r(   r)     s    zJoinableQueue.__init__c             C   s   t  j |   |  j |  j f S)N)r   r+   r   r   )r$   r'   r'   r(   r+     s    zJoinableQueue.__getstate__c             C   s:   t  j |  | d  d   | d d   \ |  _ |  _ d  S)N   r   )r   r-   r   r   )r$   r,   r'   r'   r(   r-     s    zJoinableQueue.__setstate__TNc             C   s   |  j  j | |  s t  |  j Y |  j H |  j d  k rH |  j   |  j j |  |  j	 j
   |  j j   Wd  QRXWd  QRXd  S)N)r!   r?   r   r0   r   r4   r@   r3   rA   r   rG   rB   )r$   rC   rD   rE   r'   r'   r(   rF     s    
zJoinableQueue.putc          	   C   sR   |  j  B |  j j d  s( t d   |  j j j   rG |  j  j   Wd  QRXd  S)NFz!task_done() called too many times)r   r   r?   
ValueErrorrM   rQ   
notify_all)r$   r'   r'   r(   	task_done'  s
    
zJoinableQueue.task_donec          	   C   s4   |  j  $ |  j j j   s) |  j  j   Wd  QRXd  S)N)r   r   rM   rQ   rp   )r$   r'   r'   r(   rj   .  s    
zJoinableQueue.join)	rz   r{   r|   r)   r+   r-   rF   r   rj   r'   r'   r'   r(   r     s   c               @   sX   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d d   Z d S)r   c            C   sj   t  j d d  \ |  _ |  _ | j   |  _ |  j j |  _ t j	 d k rW d  |  _
 n | j   |  _
 d  S)Nr   Fr   )r   r   r   r   r   r   r=   r>   r   r   r   )r$   r&   r'   r'   r(   r)   9  s    zSimpleQueue.__init__c             C   s   |  j    S)N)r>   )r$   r'   r'   r(   rP   B  s    zSimpleQueue.emptyc             C   s)   t  j |   |  j |  j |  j |  j f S)N)r	   r*   r   r   r   r   )r$   r'   r'   r(   r+   E  s    zSimpleQueue.__getstate__c             C   s1   | \ |  _  |  _ |  _ |  _ |  j  j |  _ d  S)N)r   r   r   r   r=   r>   )r$   r,   r'   r'   r(   r-   I  s    zSimpleQueue.__setstate__c          	   C   s-   |  j   |  j j   } Wd  QRXt j |  S)N)r   r   r;   r   rI   )r$   rJ   r'   r'   r(   rL   M  s    
zSimpleQueue.getc          	   C   sV   t  j |  } |  j d  k r1 |  j j |  n! |  j  |  j j |  Wd  QRXd  S)N)r   rr   r   r   r9   )r$   rC   r'   r'   r(   rF   S  s
    
zSimpleQueue.putN)	rz   r{   r|   r)   rP   r+   r-   rL   rF   r'   r'   r'   r(   r   7  s   	)__all__r   r   r.   r1   rH   rg   ro   queuer   r   _multiprocessing r   r	   utilr
   r   r   r   r   	reductionr   objectr   rl   r   r   r'   r'   r'   r(   <module>
   s"   (	
*