?HgddlZddlZddlmZdZejedZdada Gdde Z d dZ d Z ed d ZdS) N)contextmanagerz/etc/containerz .ve.cfg.lockFceZdZdS)LockFailedExceptionN)__name__ __module__ __qualname__G/opt/cloudlinux/venv/lib/python3.11/site-packages/clveconfig/ve_lock.pyrrsDr rc tdS|rda ttddat jttjn"#t$r}td|d}~wwxYwt ddt t ttjtdS)NFTza+zutf-8)encodingz$IO error happened while getting lockr)LOCK_FD LOCK_WRITEopen LOCK_FILEfcntlflockfilenoLOCK_EXIOErrorrseektruncatewritestrosgetpidflush)res r setup_global_lockrsu  Qy$999 GNN$$em4444 QQQ!"HIIqPQ LLA  MM#bikk""### MMOOO 4sA A A<'A77A<c`trdSttdadSdS)NFT)rrcloser r r release_lockr".s6u tr c#LKt|dVtdS)zQ Usage: with acquire_lock(): ... do something with ve.cfg ... N)rr")rs r acquire_lockr$;s,e EEENNNNNr )F)rr contextlibr CONFIG_DIRpathjoinrrr Exceptionrrr"r$r r r r*s %%%%%%  GLL^ 4 4         )   *   r