
    i#	                     J    d dl Z d dlZd dlmZ d dlmZ d dlmZ d Zd Z	d Z
y)    N)ThreadPoolExecutor)BloomFilter)PreshMapc           	         t        j                         }t        j                  d       t        |       }t	        |      5 }g }t        j                  |      }t        |       D ]'  \  }}|j                  |j                  |||             ) |D 	cg c]  }	|	j                          c}	 d d d        t        j                  |       y c c}	w # 1 sw Y   $xY w)NgHz>)max_workers)sysgetswitchintervalsetswitchintervallenr   	threadingBarrier	enumerateappendsubmitresult)
chunksclosureorig_interval	n_threadstpefuturesbichunkfs
             q/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/preshed/tests/test_multithreaded.pyrun_threadedr   	   s    ))+M(#FI			2 &ci(!&) 	:HAuNN3::gq%89	:$%%& -( 	&& &s   ACC
)C
CCc                      t        d      d} t        t        ddd            }t        |      }|| z  }|| z  |k(  sJ g }t        d||      D ]  }|j	                  ||||z            fd}t        ||       y )Ni   )size   r   '  
   c                     | j                          |D ]/  }|vsJ j                  |       |v sJ j                          1 y N)waitadd
_roundtrip)r   r   iibfs      r   workerz0test_multithreaded_bloom_sharing.<locals>.worker!   sH    	 	B R<<FF2J8O8MMO	    )r   listranger   r   r   )r   valsn_vals
chunk_sizer   r   r*   r)   s          @r    test_multithreaded_bloom_sharingr1      s    	%	 BIa#$DYF"J	!V+++F1fj) /d1a*n-./  r+   c            
      b   t               d} t        t        ddd            }t        t        ddd            }t        |      }|| z  }|| z  |k(  sJ g }t        d||      D ])  }|j	                  t        ||||z    ||||z                 + t        |      | k(  sJ fd}t        ||       y )Nr    r   r!   r"      c                 "   | j                          |D ]y  \  }}|   J ||<   |   |k(  sJ j                         D ]  \  }}|   |d fv rJ  j                  |      |k(  sJ |   J ||<   |   |k(  sJ |= |   J ||<   { y r$   )r%   itemspop)r   r   kvkkvvhs         r   r*   z.test_multithreaded_map_sharing.<locals>.worker;   s    	 	DAqQ4<<AaDQ4199GGI +RuT
***+ 558q= =Q4<<AaDQ4199!Q4<<AaD'	r+   )r   r,   r-   r   r   zipr   )	r   keysr.   r/   r0   r   r   r*   r;   s	           @r   test_multithreaded_map_sharingr>   .   s    
AIa#$Da#$DYF"J	!V+++F1fj) Mc$q!j.141z>3JKLMv;)###.  r+   )r   r   concurrent.futuresr   preshed.bloomr   preshed.mapsr   r   r1   r>    r+   r   <module>rC      s#     
 1 % !
)!0$!r+   