U
    ÷Õ/e  ã                   @  sL   d dl mZ d dlZd dlZd dlZd dlmZ e e¡Z	ddœdd„Z
dS )é    )ÚannotationsN)ÚAnyÚNone)Úreturnc                  ƒ  s¢   t jt jf} t ¡ ‰t ¡ ‰i ‰d‰ ‡ ‡‡‡fdd„}| D ]}t   ||¡ˆ|< q:z0ˆ ¡ I dH  ˆ sht‚t 	dt  
ˆ ¡jˆ ¡ W 5 | D ]}t   |ˆ| ¡ q†X dS )z<Wait for sigint or sigterm by setting global signal handlersNc                   s$   | ‰ t   | ˆ|  ¡ ˆ ˆj¡ d S )N)ÚsignalZcall_soon_threadsafeÚset)ÚsignumÚframe©Zcaught_signalÚeventZloopZold_handlers© ú8/tmp/pip-unpacked-wheel-g426oqom/distributed/_signals.pyÚhandle_signal   s    z'wait_for_signals.<locals>.handle_signalzReceived signal %s (%d))r   ÚSIGINTÚSIGTERMÚasyncioZget_running_loopÚEventÚwaitÚAssertionErrorÚloggerÚinfoÚSignalsÚname)Zsignalsr   Úsigr   r
   r   Úwait_for_signals   s$    
 
 ÿr   )Ú
__future__r   r   Úloggingr   Útypingr   Ú	getLoggerÚ__name__r   r   r   r   r   r   Ú<module>   s   
