
    Yfr                         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 ej                  j                  Z	ej                  deddfd       Zy)    N)Scalenescalenereturnc                 N     ddt         dd f fd}|t        j                  _        y )Ntimeoutr   c                    t         dk\  r| j                          | j                  t        j                         k(  sJ d       | j
                  J d       t        j                         }|dk  rt        j                         }nt        |t        j                               }t        j                         }	 j                  |       | j
                  j                  |      }|3ddlm} j#                  | j$                         |j'                  |        yj)                  |       |dk7  r4t        j                         }||z
  |k\  rddlm} |j'                  |        y)z{
        A drop-in replacement for multiprocessing.Process.join
        that periodically yields to handle signals
           zcan only join a child processNzcan only join a started processr   )	_children)minor_version_check_closed_parent_pidosgetpid_popen	threading	get_identsysgetswitchintervalmintimeperf_counterset_thread_sleepingwaitmultiprocessing.processr
   remove_child_pidpiddiscardreset_thread_sleeping)	selfr   tidentinterval
start_timeresr
   end_timer   s	           Y/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/scalene/replacement_pjoin.pyreplacement_process_joinz3replacement_pjoin.<locals>.replacement_process_join   s4    A 299;.O0OO.{{&I(II&$$&Q;,,.H7C$9$9$;<H&&(
''/++""8,C=((2!!$'))&1 "},,.j(G3 %%d++     )r   )floatmultiprocessingProcessjoin)r   r'   s   ` r&   replacement_pjoinr-      s'    % %t %N $<O r(   )r*   r   r   r   r   scalene.scalene_profilerr   version_infominorr   shimr-    r(   r&   <module>r3      sN     	 
   ,  && 	(<w (<4 (< (<r(   