File: //lib64/python2.7/site-packages/mercurial/lock.pyo
�
1�3\c @@ s� d d l m Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m
Z
d d l m Z m
Z
m Z m Z d d l m Z d � Z e j d � � Z d � Z d
e f d � � YZ d � Z d S(
i ( t absolute_importNi ( t _( t encodingt errort pycompatt util( t procutilc C@ s� t j t j � � } t j j d � r� y | d t j d � j 7} Wq� t
k
r� } | j t j t j
t j f k r� � q� q� Xn | S( s
Return a string which is used to differentiate pid namespaces
It's useful to detect "dead" processes and remove stale locks with
confidence. Typically it's just hostname. On modern linux, we include an
extra Linux-specific pid namespace identifier.
t linuxs /%xs /proc/self/ns/pid( R t
strtolocalt sockett gethostnameR t sysplatformt
startswitht ost statt st_inot OSErrort errnot ENOENTt EACCESt ENOTDIR( t resultt ex( ( s4 /usr/lib64/python2.7/site-packages/mercurial/lock.pyt _getlockprefix s !
c #@ s< g � t � i } d � � � � � f d � } z� xW d d d d d g D]@ } t t | d � } | rI | | k rI t j | � | | <qI qI Wy% x | D] } t j | | � q� WWn t k
r� n Xt � d VWd t � y1 x* | j � D] \ } } t j | | � q� WWn t k
rn XX� r8� � d � n d S(
s@ Block signal interrupt while doing something critical
This makes sure that the code block wrapped by this context manager won't
be interrupted.
For Windows developers: It appears not possible to guard time.sleep()
from CTRL_C_EVENT, so please don't use time.sleep() to test if this is
working.
c S@ sF | t t d d � k s0 | t t d d � k r9 t � n t j � d S( Nt SIGINTt CTRL_C_EVENT( t getattrt signalt Nonet KeyboardInterruptR t SignalInterrupt( t num( ( s4 /usr/lib64/python2.7/site-packages/mercurial/lock.pyt raiseinterrupt>