File: //opt/alt/python35/lib/python3.5/site-packages/lockfile/__pycache__/linklockfile.cpython-35.pyc
��UV\
� @ sp d d l m 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_importN� )�LockBase�
LockFailed� NotLocked� NotMyLock�LockTimeout�
AlreadyLockedc @ sU e Z d Z d Z d d d � Z d d � Z d d � Z d d
� Z d d � Z d S)
�LinkLockFilez�Lock access to a file using atomic property of link(2).
>>> lock = LinkLockFile('somefile')
>>> lock = LinkLockFile('somefile', threaded=False)
Nc C st y t | j d � j � Wn% t k
rA t d | j � � Yn X| d k rT | n | j } t j � } | d k r� | d k r� | | 7} x� y t j | j | j � Wn� t
k
rgt j | j � j } | d k r� d S| d k r@t j � | k r@t j
| j � | d k r-t d | j � � n t d | j � � t j | d k r\| d p_d � Yq� Xd Sq� Wd S) N�wbzfailed to create %sr � z&Timeout waiting to acquire lock for %sz%s is already locked�
g�������?)�open�unique_name�close�IOErrorr �timeout�time�os�link� lock_file�OSError�stat�st_nlink�unlinkr �pathr �sleep)�selfr �end_timeZnlinks� r �/linklockfile.py�acquire s0
(zLinkLockFile.acquirec C sn | j � s"