
    h8'h                         d Z ddlZddlmZ ddlmZ ddl	m
Z
mZ ddlmZmZ  e       d e       dg i d	d
ZddZddZddZddZd Zd Zd ZddZd Zy)z0.0.11    N)exit)_exit)Thread	Semaphore)Process	cpu_countthreadFMain)	CPU_CORESENGINEMAX_THREADSKILL_RECEIVEDTASKSPOOLS	POOL_NAMEc                 >    | 
| t         d<   y t               t         d<   y )Nr   )configr   )threadss    Q/var/www/html/trade_iq/venv/lib/python3.12/site-packages/multitasking/__init__.pyset_max_threadsr   +   s     '} )}    c                 N    d| j                         v r
dt        d<   y dt        d<   y )Nprocessr   r	   )lowerr   )kinds    r   
set_enginer   2   s$    DJJL $x#xr   c                     | 	t         d   } d}t         d   t         d      d   t        k(  rd}|| t         d   t         d      d   dS )Nr   r	   r   enginer   r   )r   namer   )r   r   )r   r   s     r   getPoolr    9   s^    |k"Fgvk*+H5? '?6+#67	B r   c                 2   | t         d<   	 t        |      }|dk  rd}||nt         d   }|t         d<   |t         d<   |dkD  rt        |      nd d|j	                         v rt
        nt        | |dt         d   t         d   <   y # t        $ r t         d   }Y w xY w)	Nr   r      r   r   r   )poolr   r   r   r   )r   int	Exceptionr   r   r   r   )r   r   r   s      r   
createPoolr&   H   s    F;(g, {)Vvh/?F#F=F8 '.k	'"t&&,,.8'f	,F7OF;'(  ('(s   B BBc                 F     t         d   s
t                 fd fd}|S )Nr   c                  l    t         d   t         d      d   5   | i |cd d d        S # 1 sw Y   y xY w)Nr   r   r#   r   )argskwargscallees     r   _run_via_poolztask.<locals>._run_via_poolf   s;    G_VK01&9 	+4*6*	+ 	+ 	+s   *3c                  H   t         d   t         d      d   dk(  r | i |S t         d   sJ	 t        d   t         d      d   | |d      }t         d
   j                  |       |j                          |S y # t        $ r! t        d   t         d      d   | |	      }Y Tw xY w)Nr   r   r   r   r   r   F)targetr*   r+   daemon)r/   r*   r+   r   )r   r%   appendstart)r*   r+   singler-   r,   s      r   async_methodztask.<locals>.async_methodj   s    '?6+./	:a?4*6** o&D)<=hG(t!%1 7O""6*LLNM '
  D)<=hG(tFDDs   A7 7'B! B!)r   r&   )r,   r4   r-   s   ` @r   taskr5   `   s#     '?+$ r   c                      t         d   S Nr   r)    r   r   get_list_of_tasksr9   ~   s    '?r   c                  \    t         d   D  cg c]  } | j                         s|  c} S c c} w r7   )r   is_alive)xs    r   get_active_tasksr=      s"    g7!!**,A777s   ))c                 D   dt         d<   t         d   t         d      d   dk(  ry	 	 t        t         d   D cg c]%  }|!|j                         r|j                  d      ' c}      }|dk(  rnt	        j
                  |        ]	 d	t         d<   yc c}w # t        $ r Y w xY w)
NTr   r   r   r   r   r      F)r   lenr;   join_timesleepr%   )rC   trunnings      r   wait_for_tasksrF      s    "F?gvk*+I6!;fWo >m

 66!9 > ?G!|KK  
 $F?>
  s"   B *B #B B 	BBc                 t    dt         d<   	 t        d       dt         d<   y # t        $ r t        d       Y  w xY w)NTr   r   F)r   sysexit
SystemExitosexit)selfclss     r   killallrM      s<    "F?
 $F?  q	s     77)N) )mainNN)r   )__version__timerB   sysr   rH   osr   rJ   	threadingr   r   multiprocessingr   r   r   r   r   r    r&   r5   r9   r=   rF   rM   r8   r   r   <module>rV      sj   ,     ' . ;
,$0<8*$r   