__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
3 �Pf8 � @ sL d dl mZ d dlZd dlZddlmZmZmZmZm Z G dd� de�Z dS )� )�absolute_importN� )�LockBase� NotLocked� NotMyLock�LockTimeout� AlreadyLockedc @ sD e Zd ZdZddd�Zddd�Zdd � Zd d� Zdd � Zdd� Z dS )�SymlinkLockFilez'Lock access to a file using symlink(2).TNc C s( t j| |||� tjj| j�d | _d S )Nr )r �__init__�os�path�split�unique_name)�selfr Zthreaded�timeout� r �%/usr/lib/python3.6/symlinklockfile.pyr s zSymlinkLockFile.__init__c C s� |d k r|n| j }tj� }|d k r2|dkr2||7 }x�ytj| j| j� W nt tk r� | j� rdd S |d k r�tj� |kr�|dkr�td| j ��nt d| j ��tj|d k r�|d nd� Y q4X d S q4W d S )Nr z&Timeout waiting to acquire lock for %sz%s is already locked� g�������?)r �timer �symlinkr � lock_file�OSError�i_am_lockingr r r Zsleep)r r Zend_timer r r �acquire s$ zSymlinkLockFile.acquirec C s>