Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3
ÝPf‚ ã @ sr d dl mZmZ d dlZd dlZye W n ek
r@ eZY nX ddlm Z m
Z
mZmZm
Z
G dd„ de ƒZdS )é )Úabsolute_importÚdivisionNé )ÚLockBaseÚ NotLockedÚ NotMyLockÚLockTimeoutÚ
AlreadyLockedc @ sP e Zd ZdZdZddd„Zddd„Zdd „ Zd
d„ Zdd
„ Z dd„ Z
dd„ ZdS )ÚSQLiteLockFilezDemonstrate SQL-based locking.NTc
C sÐ t j| |||ƒ t| jƒ| _t| jƒ| _tjdkrdddl}|jƒ \}}t j
|ƒ t j|ƒ ~~|t_ddl}|j
tjƒ| _| jjƒ }y|jdƒ W n |jk
r¨ Y n$X | jjƒ ddl} | jt 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_fileÚunique_namer
ÚtestdbÚtempfileZmkstempÚosÚcloseÚunlinkÚsqlite3ZconnectÚ
connectionÚcursorÚexecuteZOperationalErrorÚcommitÚatexitÚregister)
ÚselfÚpathZthreadedÚtimeoutr Z_fdr r Úcr © r ú$/usr/lib/python3.6/sqlitelockfile.pyr s(
zSQLiteLockFile.__init__c C sH |d k r|n| j }tjƒ }|d k r2|dkr2||7 }|d kr@d}n|dkrNd}n|d }| jjƒ }xâ| jƒ sÎ|jd| j| jfƒ | jjƒ |jd| jfƒ |j ƒ }t
|ƒdkrÈ|jd| jfƒ | jjƒ qöd S n(|jd| jfƒ |j ƒ }t
|ƒdkröd S |d k �r6tjƒ |k�r6|dk�r(td| j ƒ‚nt
d | j ƒ‚tj|ƒ qbW d S )
Nr gš™™™™™¹?é
z;insert into locks (lock_file, unique_name) values (?, ?)z*select * from locks where unique_name = ?r z(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 ÚfetchallÚlenr r r Zsleep)r r Zend_timeÚwaitr Úrowsr r r Úacquire5 sD
zSQLiteLockFile.acquirec C s\ | j ƒ std| j ƒ‚| jƒ s4td| j| jƒ f ƒ‚| jjƒ }|j d| jfƒ | jj
ƒ d S )Nz%s is not lockedz#%s is locked, but not by me (by %s)z(delete from locks where unique_name = ?)r# r r Úi_am_lockingr r Ú_who_is_lockingr r r r )r r r r r Úreleaset s
zSQLiteLockFile.releasec C s&