File: //opt/alt/python37/lib/python3.7/site-packages/clveconfig/__pycache__/ve_lock.cpython-37.opt-1.pyc
B
�B��i�W� @ sv d dl mZ d dlZd dlZd dlmZ dZej�ed�Z da
daG dd� de�Z
dd d
�Zdd� Zedd
d��ZdS )� )�absolute_importN)�contextmanagerz/etc/containerz.ve.cfg.lockFc @ s e Zd ZdS )�LockFailedExceptionN)�__name__�
__module__�__qualname__� r r �py/clveconfig/ve_lock.pyr s r c C s� t d k rdS | rday ttd�a t�t �� tj� W n tk
rP t d��Y nX t �
dd� t �� t �t
t�� �� t �� dS )NFTza+z$IO error happened while getting lockr )�LOCK_FD�
LOCK_WRITE�open� LOCK_FILE�fcntlZflock�filenoZLOCK_EX�IOErrorr �seek�truncate�write�str�os�getpid�flush)r r r r �setup_global_lock s
r c C s$ t rdS td k r t�� d adS d S )NFT)r r
�closer r r r �release_lock. s r c c s t | � dV t� dS )zQ
Usage:
with acquire_lock():
... do something with ve.cfg ...
N)r r )r r r r �acquire_lock; s r )F)F)Z
__future__r r r �
contextlibr Z
CONFIG_DIR�path�joinr
r
r � Exceptionr r r r r r r r �<module> s