Mini Shell
a
�DOgZ- � @ s" g d �Z ddlZddlZddlZddlZddlZddlmZ ddlmZ ddlm Z zddlm
Z
mZ W n ey� ed��Y n0 e
ed ��\ZZej
jZG d
d� de�Z
G dd
� d
e
�ZG dd� de�ZG dd� de
�ZG dd� de
�ZG dd� de�ZG dd� de�ZG dd� dej�ZdS ))�Lock�RLock� Semaphore�BoundedSemaphore� Condition�Event� N� )�context)�process)�util)�SemLock�
sem_unlinkz�This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.� c @ s\ e Zd Ze�� Zdd� Zedd� �Zdd� Z dd� Z
d d
� Zdd� Zd
d� Z
edd� �ZdS )r c C s� |d u rt j�� }|�� }tjdkp*|dk}td�D ]<}z t�|||| � � |� }| _
W n tyj Y q40 qzq4td��t�
d|j � | �� tjdkr�dd� } t�| | � | j
jd ur�dd lm}
|
| j
jd
� tj| tj| j
jfdd� d S )
N�win32�fork�d zcannot find name for semaphorezcreated semlock with handle %sc S s | j �� d S �N)�_semlock�_after_fork)�obj� r �3/usr/lib64/python3.9/multiprocessing/synchronize.pyr G s z%SemLock.__init__.<locals>._after_forkr )�register� semaphorer )�exitpriority)r �_default_context�get_context�get_start_method�sys�platform�range�_multiprocessingr �
_make_namer �FileExistsErrorr �debug�handle�
_make_methods�register_after_fork�name�resource_trackerr �Finalize�_cleanup)�self�kind�value�maxvalue�ctxr( �
unlink_now�i�slr r r r r �__init__2 s2
�
�zSemLock.__init__c C s"