File: //opt/alt/python35/lib/python3.5/site-packages/lockfile/__pycache__/mkdirlockfile.cpython-35.pyc
��UV � @ s� 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
Gd d � d e � Z d S)� )�absolute_import�divisionN� )�LockBase�
LockFailed� NotLocked� NotMyLock�LockTimeout�
AlreadyLockedc @ sg e Z d Z d Z d 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 sK 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_file�hostnameZtname�pid�unique_name)�selfr Zthreaded�timeout� r �/mkdirlockfile.pyr s
zMkdirLockFile.__init__c C sp | d k r | n | j } t j � } | d k rI | d k rI | | 7} | d k r^ d } n t d | d � } x� y t j | j � Wn� t k
rMt j � d } | j t j
k r6t j j | j
� r� d S| d k r&t j � | k r&| d k rt d | j � � n t d | j � � t j | � n t d | j � � Yqt Xt | j
d � j � d Sqt Wd 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 s2
zMkdirLockFile.acquirec C sn | j � s"