File: //usr/local/lib/python3.9/site-packages/billiard/__pycache__/synchronize.cpython-39.pyc
a
X>h�2 � @ sr d dl Z d dlZd dlZd dlZddlmZ ddlmZ ddlmZ ddlm Z m
Z
d dlmZ g d�Z
e
� eed ��\ZZe jjZze jjZW n: ey� zd d
lmZ W n ey� dZY n0 Y n0 dd� ZG d
d� d�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� d�ZG dd� d�Zeed��r`G dd� dej �Z nG dd� d�Z dS )� N� )�context)�process)�util)� _billiard�ensure_SemLock)� monotonic)�Lock�RLock� Semaphore�BoundedSemaphore� Condition�Event� )�
sem_unlinkc C s z| j W S ty Y n0 d S �N)�name�AttributeError)�sl� r �>/usr/local/lib/python3.9/site-packages/billiard/synchronize.py�_semname4 s r c @ s^ e Zd Ze�� Zddd�Zedd� �Zdd� Z dd � Z
d
d� Zdd
� Zdd� Z
edd� �ZdS )�SemLockNc C sL |d u rt j�� }|�� }tjdkp*|dk}tr�td�D ]f}z t� |||| �
� |� }| _W n< tt
fy� } z t| dd �tjkr�� W Y d } ~ q8d } ~ 0 0 q�q8t
d�} tj| _| �nt� |||� }| _t�d|j� | �� t�rHtjdk�rdd� }
t�| |
� t| j�d u�rHd d
lm} || jj� tj| t j| jjfdd� d S )
N�win32�fork�d �errnozcannot find file for semaphorezcreated semlock with handle %sc S s | j �� d S r )�_semlock�_after_fork)�objr r r r [ s z%SemLock.__init__.<locals>._after_forkr )�registerr )Zexitpriority)r Z_default_contextZget_contextZget_start_method�sys�platformr �ranger r �
_make_namer �OSError�IOError�getattrr �EEXISTr �debug�handle�
_make_methodsZregister_after_forkr �semaphore_trackerr r ZFinalize�_cleanup)�self�kind�value�maxvalue�ctxr Z
unlink_now�ir �excr r r r r �__init__>