U
    /e                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ d dlZzd dlZW n e	k
r\   dZY nX ej
dd Zej
dd Zej
dd	 ZdS )
    )annotationsNThreadPoolExecutorc                  c  sL   t jdkstd krd V  n.t } |  }d V  t  |  |ksHtd S )Nwin32)sysplatformpsutilProcessZnum_fdsgcZcollectAssertionError)procbefore r   7/tmp/pip-unpacked-wheel-z3s6s24u/zict/tests/conftest.pycheck_fd_leaks   s    r   c               	   #  s4   t d"dd   fdd} | V  W 5 Q R X dS )zNCallable that returns True if the parameter zict mapping has its RLock engaged   c                 S  s"   | j jdd}|r| j   | S )NF)blocking)lockacquirerelease)doutr   r   r   __is_locked!   s    
zis_locked.<locals>.__is_lockedc                   s     |  S )N)Zsubmitresult)r   r   exr   r   
_is_locked'   s    zis_locked.<locals>._is_lockedNr   )r   r   r   r   	is_locked   s    
r   c                  #  s:   t   d V   fddt  D } | r6td|  d S )Nc                   s   g | ]}| kr|qS r   r   ).0threadZactive_threads_startr   r   
<listcomp>3   s     z&check_thread_leaks.<locals>.<listcomp>zLeaked thread(s): )	threading	enumerateRuntimeError)Zbad_threadsr   r    r   check_thread_leaks-   s    
r%   )
__future__r   r
   r   r"   concurrent.futuresr   Zpytestr   ImportErrorZfixturer   r   r%   r   r   r   r   <module>   s   


