403Webshell
Server IP : 192.158.238.246  /  Your IP : 18.216.137.32
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib/python3.7/site-packages/beaker/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib/python3.7/site-packages/beaker/__pycache__/synchronization.cpython-37.pyc
B

��[-�@s0dZddlZddlZddlZddlZyddlZWnek
rLddlZYnXye�	�dZ
Wn6yddlZdZ
Wnek
r�dZ
YnXYnXddlm
Z
ddlmZddd	d
dgZGdd
�d
e�Ze
��Zd
d�Zdd�Zdd�ZGdd	�d	e�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)z�Synchronization functions.

File- and mutex-based mutual exclusion synchronizers are provided,
as well as a name-based mutex which locks within an application
based on a string name.

�NFT)�util)�	LockError�file_synchronizer�mutex_synchronizer�null_synchronizer�NameLock�
_threadingc@sDeZdZdZe��ZGdd�de�Zd
dd�Z	dd	d
�Z
dd�ZdS)rz�a proxy for an RLock object that is stored in a name based
    registry.

    Multiple threads can get a reference to the same RLock based on the
    name alone, and synchronize operations related to that name.

    c@seZdZdd�Zdd�ZdS)zNameLock.NLContainercCs|rt��|_n
t��|_dS)N)r�RLock�lock�Lock)�self�	reentrant�r�G/opt/alt/python37/lib/python3.7/site-packages/beaker/synchronization.py�__init__/szNameLock.NLContainer.__init__cCs|jS)N)r
)rrrr�__call__5szNameLock.NLContainer.__call__N)�__name__�
__module__�__qualname__rrrrrr�NLContainer.srNFcCs.|dkrt�|�|_ntj�|tj|�|_dS)N)rr�_lock�locks�get)r�
identifierr
rrrr8szNameLock.__init__TcCs|���|�S)N)r�acquire)r�waitrrrr?szNameLock.acquirecCs|����dS)N)r�release)rrrrrBszNameLock.release)NF)T)rrr�__doc__r�WeakValuedRegistryr�objectrrrrrrrrr$s


cKstj||f||f|�S)N)�_synchronizersZsync_get)r�cls�kwargsrrr�
_synchronizerIsr#cKs&trd|krt|�St|tf|�SdS)N�lock_dir)�	has_flockrr#�FileSynchronizer)rr"rrrrMscKst|tf|�S)N)r#�ConditionSynchronizer)rr"rrrrTsc@s:eZdZdZddd�Zdd�Zdd�Zd	d
�ZeZeZ	dS)
rzmA 'null' synchronizer, which provides the :class:`.SynchronizerImpl` interface
    without any locking.

    TcCsdS)NTr)rrrrr�acquire_write_lock]sz$null_synchronizer.acquire_write_lockcCsdS)Nr)rrrr�acquire_read_lock`sz#null_synchronizer.acquire_read_lockcCsdS)Nr)rrrr�release_write_lockcsz$null_synchronizer.release_write_lockcCsdS)Nr)rrrr�release_read_lockfsz#null_synchronizer.release_read_lockN)T)
rrrrr(r)r*r+rrrrrrrXs
c@s�eZdZdZdd�ZGdd�de�Zdd�Zee�Zdd	�Z	ddd�Z
d
d�ZeZddd�Z
e
Zdd�Zdd�Zdd�Zdd�ZdS)�SynchronizerImplz_Base class for a synchronization object that allows
    multiple readers, single writers.

    cCst��|_dS)N)r�ThreadLocal�_state)rrrrrqszSynchronizerImpl.__init__c@seZdZdZdd�ZdS)zSynchronizerImpl.SyncState)�reentrantcount�writing�readingcCsd|_d|_d|_dS)NrF)r/r0r1)rrrrrwsz#SynchronizerImpl.SyncState.__init__N)rrr�	__slots__rrrrr�	SyncStatetsr3cCs0|j��s"t��}|j�|�|S|j��SdS)N)r.Zhasr,r3�putr)r�staterrrr5|s

zSynchronizerImpl.statecCsL|j}|jrtd��|js"td��|jdkr:|��d|_|jd8_dS)Nzlock is in writing statezlock is not in reading state�F)r5r0rr1r/�do_release_read_lock)rr5rrrr+�s
z"SynchronizerImpl.release_read_lockTcCsd|j}|jrtd��|jdkrH|�|�}|s0|rD|jd7_d|_|S|jr`|jd7_dSdS)Nzlock is in writing staterr6T)r5r0rr/�do_acquire_read_lockr1)rrr5�xrrrr)�s

z"SynchronizerImpl.acquire_read_lockcCsL|j}|jrtd��|js"td��|jdkr:|��d|_|jd8_dS)Nzlock is in reading statezlock is not in writing stater6F)r5r1rr0r/�do_release_write_lock)rr5rrrr*�s
z#SynchronizerImpl.release_write_lockcCsd|j}|jrtd��|jdkrH|�|�}|s0|rD|jd7_d|_|S|jr`|jd7_dSdS)Nzlock is in reading staterr6T)r5r1rr/�do_acquire_write_lockr0)rrr5r9rrrr(�s

z#SynchronizerImpl.acquire_write_lockcCs
t��dS)N)�NotImplementedError)rrrrr7�sz%SynchronizerImpl.do_release_read_lockcCs
t��dS)N)r<)rrrrrr8�sz%SynchronizerImpl.do_acquire_read_lockcCs
t��dS)N)r<)rrrrr:�sz&SynchronizerImpl.do_release_write_lockcCs
t��dS)N)r<)rrrrrr;�sz&SynchronizerImpl.do_acquire_write_lockN)T)T)rrrrrrr3r5�propertyr+r)r*rr(rr7r8r:r;rrrrr,ls

r,csheZdZdZ�fdd�Zdd�Zee�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
�ZS)r&z/A synchronizer which locks using flock().

    csVtt|���t��|_|dkr*t��}n|}tj||gdd�|_	t
j�|j	�|_
dS)Nz.lock)�	extension)�superr&rrr-�_filedescriptor�tempfile�
gettempdirZencoded_path�filename�os�path�dirnamer$)rrr$)�	__class__rrr�s


zFileSynchronizer.__init__cCs
|j��S)N)r@r)rrrr�	_filedesc�szFileSynchronizer._filedesccCstj�|j�st�|j�dS)N)rDrE�existsr$rZverify_directory)rrrr�
_ensuredir�szFileSynchronizer._ensuredircCs4|j}|dkr0|��t�|j|�}|j�|�|S)N)rHrJrD�openrCr@r4)r�mode�filedescriptorrrr�_open�szFileSynchronizer._opencCsp|�tjtjB�}|sZyt�|tjtjB�dStk
rVt�	|�|j
��dSXnt�|tj�dSdS)NTF)rNrD�O_CREAT�O_RDONLY�fcntl�flockZLOCK_SH�LOCK_NB�IOError�closer@�remove)rrrMrrrr8�s

z%FileSynchronizer.do_acquire_read_lockcCsp|�tjtjB�}|sZyt�|tjtjB�dStk
rVt�	|�|j
��dSXnt�|tj�dSdS)NTF)rNrDrO�O_WRONLYrQrRZLOCK_EXrSrTrUr@rV)rrrMrrrr;s

z&FileSynchronizer.do_acquire_write_lockcCs|��dS)N)�_release_all_locks)rrrrr7sz%FileSynchronizer.do_release_read_lockcCs|��dS)N)rX)rrrrr:sz&FileSynchronizer.do_release_write_lockcCs4|j}|dk	r0t�|tj�t�|�|j��dS)N)rHrQrRZLOCK_UNrDrUr@rV)rrMrrrrXs

z#FileSynchronizer._release_all_locks)rrrrrrHr=rJrNr8r;r7r:rX�
__classcell__rr)rGrr&�sr&csDeZdZdZ�fdd�Zd
dd�Zdd�Zdd	d
�Zdd�Z�Z	S)r'z!a synchronizer using a Condition.cs.tt|���d|_d|_t�t���|_dS)Nr)	r?r'r�asynch�current_sync_operationr�	Conditionr�	condition)rr)rGrrr#szConditionSynchronizer.__init__TcCsd|j��z@|r,x(|jdk	r(|j��qWn|jdk	r:dS|jd7_Wd|j��X|s`dSdS)NFr6T)r]rr[rrZr)rrrrrr8/s

z*ConditionSynchronizer.do_acquire_read_lockcCs`|j��zD|jd8_|jdkr:|jdk	rL|j��n|jdkrLtd��Wd|j��XdS)Nr6rz7Synchronizer error - too many release_read_locks called)r]rrZr[�	notifyAllrr)rrrrr7Cs



z*ConditionSynchronizer.do_release_read_lockcCs�|j��z`|r,x(|jdk	r(|j��qWn|jdk	r:dSt��|_|jdkrh|r^|j��n
d|_dSWd|j��X|s�dSdS)NFrT)r]rr[rr�
currentThreadrZr)rrrrrr;Us 



z+ConditionSynchronizer.do_acquire_write_lockcCsF|j��z*|jt��k	r"td��d|_|j��Wd|j��XdS)Nz>Synchronizer error - current thread doesnt have the write lock)r]rr[rr_rr^r)rrrrr:ys
z+ConditionSynchronizer.do_release_write_lock)T)T)
rrrrrr8r7r;r:rYrr)rGrr' s

$r')r�errnorD�sysrA�	threadingr�ImportErrorZdummy_threading�getwindowsversionr%rQ�beakerrZbeaker.exceptionsr�__all__rrrr r#rrrr,r&r'rrrr�<module>s<"fN

Youez - 2016 - github.com/yon3zu
LinuXploit