509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!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ràtj | j¡ršY d S |d k	rÔt ¡ |krÔ|dkrÆt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    