a mëic ã @ s~ d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlZG dd„ deƒZ G dd„ dƒZ dd „ Zed krze eƒ pvd ¡ dS )é N)ÚEWOULDBLOCKÚEEXIST)Úbstrc @ s e Zd ZdZdS )ÚLockfileLockedExceptionz$thrown ONLY when pid file is locked.N)Ú__name__Ú __module__Ú__qualname__Ú__doc__© r r ú3/usr/lib/python3.9/site-packages/rhn/rhnLockfile.pyr s r c @ s* e Zd ZdZd dd„Zdd„ Zdd„ ZdS ) ÚLockfilezïclass 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. Nc C s¾ t j t j t j |¡¡¡| _|| _| js4t ¡ | _t j | j¡}t j |¡s”zt |¡ W n6 ty’ t ¡ d }t|dƒrŒ|jtkrŒn‚ Y n0 t | jt jt jB t jB ¡| _| ¡ dS )zlcreate (if need be), and acquire lock on lockfile lockfile example: '/var/run/up2date.pid' é ÚerrnoN)ÚosÚpathÚabspathÚ expanduserÚ expandvarsÚlockfileÚpidÚgetpidÚdirnameÚexistsÚmakedirsÚOSErrorÚsysÚexc_infoÚhasattrr r ÚopenÚO_RDWRÚO_CREATÚO_SYNCÚfÚacquire)Úselfr r r Úer r r Ú__init__$ s&