Viewing File: /opt/alt/python38/lib/python3.8/site-packages/lockfile/__pycache__/sqlitelockfile.cpython-38.pyc
U
UV @ sr d dl mZmZ d dlZd dlZze W n ek
r@ eZY nX ddlm Z m
Z
mZmZm
Z
G dd de ZdS ) )absolute_importdivisionN )LockBase NotLocked NotMyLockLockTimeout
AlreadyLockedc @ sP e Zd ZdZdZdddZdddZdd Zd
d Zdd
Z dd Z
dd ZdS )SQLiteLockFilezDemonstrate SQL-based locking.NTc
C s t | ||| t| j| _t| j| _tjdkrdddl}| \}}t
| t | ~~|t_ddl}|
tj| _| j }z|d W n |jk
r Y n$X | j ddl} | t jtj dS )zu
>>> lock = SQLiteLockFile('somefile')
>>> lock = SQLiteLockFile('somefile', threaded=False)
Nr zGcreate table locks( lock_file varchar(32), unique_name varchar(32)))r __init__unicode lock_fileunique_namer
testdbtempfileZmkstemposcloseunlinksqlite3Zconnect
connectioncursorexecuteZOperationalErrorcommitatexitregister)
selfpathZthreadedtimeoutr Z_fdr r cr r /sqlitelockfile.pyr s(
zSQLiteLockFile.__init__c C sD |d k r|n| j }t }|d k r2|dkr2||7 }|d kr@d}n|dkrNd}n|d }| j }| s|d| j| jf | j |d| jf | }t
|dkr|d| jf | j qd S n(|d| jf | }t
|dkrd S |d k r4t |kr4|dkr&td| j nt
d | j t| q`d S )
Nr g?
z;insert into locks (lock_file, unique_name) values (?, ?)z*select * from locks where unique_name = ?r (delete from locks where unique_name = ?z&Timeout waiting to acquire lock for %sz%s is already locked)r timer r is_lockedr r
r r fetchalllenr r r sleep)r r Zend_timewaitr rowsr r r acquire5 sL
zSQLiteLockFile.acquirec C s\ | std| j | s4td| j| f | j }| d| jf | j
d S )Nz%s is not lockedz#%s is locked, but not by me (by %s)r"