U
    g!                     @  sh   d dl mZ d dlZd dlZd dlmZ ddlmZmZ ej	dkrLej	dksTerTt
dd	d
ddZdS )    )annotationsN)TYPE_CHECKING   )_core_subprocesswin32linuxz_subprocess.ProcessNone)processreturnc                   s   t  zddlm  W n tk
r0   d Y nX ddd fddztjtjB gd W n tk
r|   Y d S X d	d
dfdd}t 	j
tj|I d H  d S )Nr   )KQ_NOTE_EXITl        intzselect.kevent)flagsr   c                   s   t jjt j|  dS )N)filterr   Zfflags)selectZkeventpidKQ_FILTER_PROC)r   )r   r
    D/tmp/pip-unpacked-wheel-ks04xdmi/trio/_subprocess_platform/kqueue.py
make_event   s    z&wait_child_exiting.<locals>.make_eventz_core.RaiseCancelTz_core.Abort)_r   c                   s     tjgd tjjS )Nr   )controlr   ZKQ_EV_DELETEr   ZAbortZ	SUCCEEDED)r   )kqueuer   r   r   abort,   s    z!wait_child_exiting.<locals>.abort)r   Zcurrent_kqueuer   r   ImportErrorr   Z	KQ_EV_ADDZKQ_EV_ONESHOTProcessLookupErrorZwait_keventr   r   )r
   r   r   )r   r   r   r
   r   wait_child_exiting   s    

r   )
__future__r   r   systypingr    r   r   platformAssertionErrorr   r   r   r   r   <module>   s   