File: //usr/local/lib/python3.10/multiprocessing/__pycache__/resource_sharer.cpython-310.opt-1.pyc
o
�i � @ s� d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ ddlm Z dgZ
ejdkr<e
dg7 Z
G d d� de�Z
n
e
d
g7 Z
G dd
� d
e�ZG dd
� d
e�Ze� ZejZdS )� N� )�process)� reduction)�util�stop�win32� DupSocketc @ � e Zd ZdZdd� Zdd� ZdS )r zPicklable wrapper for a socket.c s( |� � � � fdd�}t�|� j�| _d S )Nc s � � |�}| �|� d S �N)�share�
send_bytes)�conn�pidr �Znew_sock� �</usr/local/lib/python3.10/multiprocessing/resource_sharer.py�send s
z DupSocket.__init__.<locals>.send)�dup�_resource_sharer�register�close�_id)�self�sockr r r r �__init__ s zDupSocket.__init__c C sB t �| j��}|�� }t�|�W d � S 1 sw Y dS )z1Get the socket. This should only be called once.N)r �get_connectionr �
recv_bytes�socketZ fromshare)r r
r r r r �detach$ s $�zDupSocket.detachN��__name__�
__module__�__qualname__�__doc__r r r r r r r s �DupFdc @ r )r$ z-Wrapper for fd which can be used at any time.c s4 t �|�� � fdd�}� fdd�}t�||�| _d S )Nc s t �| � |� d S r
)r �send_handle)r
r �Znew_fdr r r 1 s zDupFd.__init__.<locals>.sendc s t �� � d S r
)�osr r r&