ó •abc @@ 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 d e f d „ ƒ YZ d S( i ( t absolute_importNi ( t LockBaset LockFailedt NotLockedt NotMyLockt LockTimeoutt AlreadyLockedt LinkLockFilec B@ s> e Z d Z d d „ Z d „ Z d „ Z d „ Z d „ Z RS( s Lock access to a file using atomic property of link(2). >>> lock = LinkLockFile('somefile') >>> lock = LinkLockFile('somefile', threaded=False) c C@ s~ y t | j d ƒ j ƒ Wn$ t k r@ t d | j ƒ ‚ n X| d k rS | n | j } t j ƒ } | d k r | d k r | | 7} n xê t ryy t j | j | j ƒ Wn¿ t k rqt j | j ƒ j } | d k rå d S| d k rKt j ƒ | k rKt j | j ƒ | d k r5t d | j ƒ ‚ qKt d | j ƒ ‚ n t j | d k rg| d pjd ƒ q Xd Sq Wd S( Nt wbs failed to create %si i s&