£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
Pf                 @   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 j| ||| tj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_fileZhostnameZtnamepidunique_name)selfr   Zthreadedtimeout r   #/usr/lib/python3.6/mkdirlockfile.pyr      s
    
zMkdirLockFile.__init__c             C   s  |d k	r|n| j }tj }|d k	r2|dkr2||7 }|d kr@d}ntd|d }xytj| j W n tk
r   tj d }|j	t	j
krtjj| jrd S |d k	rtj |kr|dkrtd| j ntd| j tj| ntd| j Y qPX t| jdj  d S qPW d 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errnoZEEXISTr   existsr   r	   r
   Zsleepr   openclose)r   r   Zend_timewaiterrr   r   r   acquire   s2    
zMkdirLockFile.acquirec             C   sP   | j  std| j ntjj| js4td| j tj| j tj| 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| jS )N)r   r   r    r   )r   r   r   r   r&   I   s    zMkdirLockFile.is_lockedc             C   s   | j  otjj| jS )N)r&   r   r   r    r   )r   r   r   r   i_am_lockingL   s    zMkdirLockFile.i_am_lockingc             C   sJ   t jj| jrFx*t j| jD ]}t jt jj| j| qW t j| j d S )N)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&   r*   r-   r   r   r   r   r      s   

&r   )Z
__future__r   r   r   r   r   r    r   r   r   r   r	   r
   r   r   r   r   r   <module>   s    