ó éíòRc@s«dZddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z m Z d„Z dd„Zd„Ze d„ƒZdS( s%Routines common to all posix systems.iÿÿÿÿN(tTimeoutExpired(t nt_diskinfot usage_percenttmemoizecCs]|dkrtSytj|dƒWn.tk rTtjƒd}|jtjkSXtSdS(s6Check whether pid exists in the current process table.iiN( tFalsetostkilltOSErrortsystexc_infoterrnotEPERMtTrue(tpidte((sB/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psposix.pyt pid_existss  csq‡‡‡‡fd†}ttdtjƒ‰ˆdk rX‡fd†}ˆƒˆ‰n‡fd†}d}xýy|ƒ\}}Wn‚tk rtjƒd}|jtjkrÇ||ƒ}qpqj|jtjkrx(t ˆƒr÷||ƒ}qÜdSqÜqj‚qpX|dkr&||ƒ}qpnt j |ƒrBt j |ƒSt j |ƒr^t j|ƒStd ƒ‚qpdS( sIWait for process with pid 'pid' to terminate and return its exit status code as an integer. If pid is not a children of os.getpid() (current process) just waits until the process disappears and return None. If pid does not exist at all return None immediately. Raise TimeoutExpired on timeout expired. csKˆdk r-ˆƒˆkr-tˆƒ‚q-ntj|ƒt|ddƒS(Nig{®Gáz¤?(tNoneRttimetsleeptmin(tdelay(R tstop_atttimeoutttimer(sB/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psposix.pyt check_timeout*s   t monotoniccstjˆtjƒS(N(RtwaitpidtWNOHANG((R (sB/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psposix.pyt3scstjˆdƒS(Ni(RR((R (sB/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psposix.pyR6sg-Cëâ6?iNisunknown process exit status(tgetattrRRRRR R tEINTRtECHILDRRt WIFSIGNALEDtWTERMSIGt WIFEXITEDt WEXITSTATUSt RuntimeError(R RRtwaitcallRtretpidtstatusterr((R RRRsB/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psposix.pytwait_pids:          cCsntj|ƒ}|j|j}|j|j}|j|j|j}t||ddƒ}t||||ƒS(s'Return disk usage associated with path.t_roundi(Rtstatvfstf_bavailtf_frsizetf_blockstf_bfreeRR(tpathtsttfreettotaltusedtpercent((sB/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psposix.pytget_disk_usage`s cCsŸi}tjdƒtjdƒ}xv|D]n}||ksAt‚y||tj|ƒjs       A