�
���cc @ sx d d l Z d d l m Z y d d l Z Wn e k
rE d Z n Xe d k Z d e f d � � YZ d d g Z d S( i����Ni ( t BaseFileLockt UnixFileLockc B s e Z d Z d � Z d � Z RS( sH Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems.c C s~ t j t j Bt j B} t j | j | � } y t j | t j t j B� Wn$ t
t f k
rp t j | � n
X| | _
d S( N( t ost O_RDWRt O_CREATt O_TRUNCt opent
_lock_filet fcntlt flockt LOCK_EXt LOCK_NBt OSErrort IOErrort closet
_lock_file_fd( t selft open_modet fd( ( s2 /usr/lib/python2.7/site-packages/filelock/_unix.pyt _acquire s c C s6 | j } d | _ t j | t j � t j | � d S( N( R t NoneR R t LOCK_UNR R ( R R ( ( s2 /usr/lib/python2.7/site-packages/filelock/_unix.pyt _release s ( t __name__t
__module__t __doc__R R ( ( ( s2 /usr/lib/python2.7/site-packages/filelock/_unix.pyR s
t has_fcntl( R t _apiR R t ImportErrorR R R t __all__( ( ( s2 /usr/lib/python2.7/site-packages/filelock/_unix.pyt <module> s