PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  Qc@sddlZddlZddlZddlmZmZddlZdefdYZdd dYZdZ e dkrej e pd ndS( iN(t EWOULDBLOCKtEEXISTtLockfileLockedExceptioncBseZdZRS(s$thrown ONLY when pid file is locked.(t__name__t __module__t__doc__(((s3/usr/lib/python2.7/site-packages/rhn/rhnLockfile.pyRstLockfilecBs,eZdZddZdZdZRS(sclass that provides simple access to a PID-style lockfile. methods: __init__(lockfile), acquire(), and release() NOTE: currently acquires upon init The *.pid file will be acquired, or an LockfileLockedException is raised. cCstjjtjjtjj||_||_|jsQtj|_ntjj|j}tjj |sytj |Wqt k r}t |dr|j tkrqqXntj|jtjtjBtjB|_|jdS(slcreate (if need be), and acquire lock on lockfile lockfile example: '/var/run/up2date.pid' terrnoN(tostpathtabspatht expandusert expandvarstlockfiletpidtgetpidtdirnametexiststmakedirstOSErrorthasattrRRtopentO_RDWRtO_CREATtO_SYNCtftacquire(tselfR RRte((s3/usr/lib/python2.7/site-packages/rhn/rhnLockfile.pyt__init__#s      )cCsy!tj|jtjtjBWnKtk rn}|jtkrhtd|j dt j dqonXtj|jtj dtj|jdtj|jt|jddS(s5acquire the lock; else raise LockfileLockedException.scannot acquire lock on %s.iiis N(tfcntltflockRtLOCK_EXtLOCK_NBtIOErrorRRRR tNonetsystexc_infotF_SETFDRt ftruncatetwritetstrR(RR((s3/usr/lib/python2.7/site-packages/rhn/rhnLockfile.pyRCs!#cCs:tj|jtj|jtjtj|jdS(N(RtunlinkR RRRtLOCK_UNtclose(R((s3/usr/lib/python2.7/site-packages/rhn/rhnLockfile.pytreleaseTsN(RRRR#RRR-(((s3/usr/lib/python2.7/site-packages/rhn/rhnLockfile.pyRs cCs}ytd}Wn4tk rF}tjjd|tjdn3XdGHdGHddl}|jd|jdGHdS( s test codes ./test.pids%s islock acquired s...sleeping for 10 secondsNi slock released ( RRR$tstderrR(texitttimetsleepR-(tLRR0((s3/usr/lib/python2.7/site-packages/rhn/rhnLockfile.pytmain[s   t__main__i(( RR$RRRRt ExceptionRRR3RR/(((s3/usr/lib/python2.7/site-packages/rhn/rhnLockfile.pyts    A