] @ s 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 d d l m Z d d l m Z d g Z e j
d k r e d g 7Z Gd d d e Z n# e d
g 7Z Gd d
d
e Z
Gd d
d
e Z e Z e j Z d S) N )process) reduction)utilstopwin32 DupSocketc @ s( e Z d Z d d Z d d Z d S)r c s: | j f d d } t j | j | _ d S)Nc s j | } | j | d S)N)share
send_bytes)connpidr )new_sock 4/opt/alt/python35/lib64/python3.5/resource_sharer.pysend s z DupSocket.__init__..send)dup_resource_sharerregisterclose_id)selfsockr r )r
r __init__ s zDupSocket.__init__c C s9 t j | j } | j } t j | SWd QRXd S)N)r get_connectionr
recv_bytessocketZ fromshare)r r r r r r detach$ s zDupSocket.detachN)__name__
__module____qualname__r r r r r r r s DupFdc @ s( e Z d Z d d Z d d Z d S)r c sL t j | f d d } f d d } t j | | | _ d S)Nc s t j | | d S)N)r send_handle)r r )new_fdr r r 1 s zDupFd.__init__..sendc s t j d S)N)osr r )r" r r r 3 s zDupFd.__init__..close)r# r r r r )r fdr r r )r" r r / s zDupFd.__init__c C s- t j | j } t j | SWd QRXd S)N)r r r r recv_handle)r r r r r r 7 s zDupFd.detachN)r r r r r r r r r r - s c @ sm e Z d Z d d Z d d Z e d d Z d d d Z d
d Z d d
Z d d Z
d S)_ResourceSharerc C s\ d | _ i | _ g | _ t j | _ d | _ d | _ d | _ t j
| t j d S)Nr )
_key_cache
_old_locks threadingLock_lock _listener_address_threadr register_after_forkr&