Edit File: ve_lock.cpython-37.pyc
B 5/9e� � @ 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