
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    UV                     @   sd   d dl mZmZ d dlZd dlZd dlZd dlZddlmZm	Z	m
Z
mZmZmZ G dd deZdS )    )absolute_importdivisionN   )LockBase
LockFailed	NotLocked	NotMyLockLockTimeoutAlreadyLockedc                   @   sD   e Zd ZdZdddZdddZdd	 Zd
d Zdd Zdd Z	dS )MkdirLockFilez"Lock file by creating a directory.TNc                 C   s6   t | ||| tj| jd| j| j| jf | _	dS )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   Zthreadedtimeout r   G/opt/alt/python38/lib/python3.8/site-packages/lockfile/mkdirlockfile.pyr      s    
zMkdirLockFile.__init__c                 C   s  |d k	r|n| j }t }|d k	r2|dkr2||7 }|d kr@d}ntd|d }zt| j W n tk
r   t d }|j	t	j
krtj| jrY d S |d k	rt |kr|dkrtd| j ntd| j t| ntd| j Y qNX t| jd  d S qNd S )	Nr   g?
   r   z&Timeout waiting to acquire lock for %sz%s is already lockedzfailed 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    zMkdirLockFile.acquirec                 C   sP   |   std| j ntj| js4td| 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    zMkdirLockFile.releasec                 C   s   t j| jS N)r   r   r#   r   r.   r   r   r   r+   I   s    zMkdirLockFile.is_lockedc                 C   s   |   otj| jS r0   )r+   r   r   r#   r   r.   r   r   r   i_am_lockingL   s    zMkdirLockFile.i_am_lockingc                 C   sF   t j| jrBt | jD ]}t t j| j| qt | j d S r0   )r   r   r#   r   listdirr,   r   r-   )r   namer   r   r   
break_lockP   s    zMkdirLockFile.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    