File: //lib64/python3.6/multiprocessing/__pycache__/resource_sharer.cpython-36.opt-2.pyc
3
  \�  �               @   s�   d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ ddlm	Z	 dgZ
ejdkrxe
dg7 Z
G d	d� de�Z
ne
d
g7 Z
G dd
� d
e�ZG dd
� d
e�Ze� ZejZdS )�    N�   )�process)�	reduction)�util�stopZwin32�	DupSocketc               @   s   e Zd Zdd� Zdd� ZdS )r   c                s(   |j � � � fdd�}tj|� j�| _d S )Nc                s   � j |�}| j|� d S )N)�shareZ
send_bytes)�conn�pidr   )�new_sock� �7/usr/lib64/python3.6/multiprocessing/resource_sharer.py�send   s    
z DupSocket.__init__.<locals>.send)�dup�_resource_sharer�register�close�_id)�selfZsockr   r   )r   r
   �__init__   s    zDupSocket.__init__c          	   C   s*   t j| j��}|j� }tj|�S Q R X d S )N)r   �get_connectionr   Z
recv_bytes�socketZ	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 Zd Zdd� Zdd� ZdS )r   c                s4   t j|�� � fdd�}� fdd�}tj||�| _d S )Nc                s   t j| � |� d S )N)r   Zsend_handle)r	   r
   )�new_fdr   r
   r   1   s    zDupFd.__init__.<locals>.sendc                  s   t j� � d S )N)�osr   r   )r   r   r
   r   3   s    zDupFd.__init__.<locals>.close)r   r   r   r   r   )r   �fdr   r   r   )r   r
   r   /   s    
zDupFd.__init__c          	   C   s"