File: //opt/alt/python38/lib/python3.8/site-packages/lockfile/__pycache__/mkdirlockfile.cpython-38.pyc
U
��UV � @ sd d dl mZmZ d dlZd dlZd dlZd dlZddlmZm Z m
Z
mZmZm
Z
G dd� de�ZdS )� )�absolute_import�divisionN� )�LockBase�
LockFailed� NotLocked� NotMyLock�LockTimeout�
AlreadyLockedc @ sD e Zd ZdZddd�Zddd�Zdd � Zd
d� Zdd
� Zdd� Z dS )�
MkdirLockFilez"Lock file by creating a directory.TNc C s6 t �| |||� tj�| jd| j| j| jf �| _ dS )zs
>>> lock = MkdirLockFile('somefile')
>>> lock = MkdirLockFile('somefile', threaded=False)
z%s.%s%sN)
r �__init__�os�path�join� lock_file�hostname�tname�pid�unique_name)�selfr Zthreaded�timeout� r �G/opt/alt/python38/lib/python3.8/site-packages/lockfile/mkdirlockfile.pyr s
��zMkdirLockFile.__init__c C s |d k r|n| j }t�� }|d k r2|dkr2||7 }|d kr@d}ntd|d �}zt�| j� W n� tk
r� t�� d }|j t j
kr�tj�| j
�r�Y d S |d k r�t�� |kr�|dkr�td| j ��ntd| j ��t�|� ntd| j ��Y qNX t| j
d��� d S qNd S ) Nr g�������?�
r z&Timeout waiting to acquire lock for %sz%s is already lockedzfailed to create %s�wb)r �time�maxr
�mkdirr �OSError�sys�exc_info�errno�EEXISTr �existsr r r
�sleepr �open�close)r r �end_time�wait�errr r r �acquire s4 ��zMkdirLockFile.acquirec C sP | � � std| j ��ntj�| j�s4td| j ��t�| j� t�| j � d S )Nz%s is not lockedz%s is locked, but not by me)
� is_lockedr r r
r# r r �unlink�rmdirr �r r r r �releaseA s zMkdirLockFile.releasec C s t j�| j�S �N)r
r r# r r. r r r r+ I s zMkdirLockFile.is_lockedc C s | � � otj�| j�S r0 )r+ r
r r# r r. r r r �i_am_lockingL s �zMkdirLockFile.i_am_lockingc C sF t j�| j�rBt �| j�D ]}t �t j�| j|�� qt �| j� d S r0 )r
r r# r �listdirr, r r- )r �namer r r �
break_lockP s zMkdirLockFile.break_lock)TN)N)
�__name__�
__module__�__qualname__�__doc__r r* r/ r+ r1 r4 r r r r r s
&r )�
__future__r r r r
r r! � r r r r r r
r r r r r �<module> s