25 lines
No EOL
516 B
Python
25 lines
No EOL
516 B
Python
from filelock import FileLock, Timeout
|
|
import atexit
|
|
|
|
FILELOCK_PATH = "/root/complib.lock"
|
|
|
|
global_lock = FileLock(FILELOCK_PATH, timeout=1)
|
|
class Lock(object):
|
|
@staticmethod
|
|
def lock():
|
|
global_lock.acquire()
|
|
|
|
@staticmethod
|
|
def unlock():
|
|
global_lock.release()
|
|
|
|
@staticmethod
|
|
def is_locked():
|
|
try:
|
|
global_lock.acquire()
|
|
global_lock.release()
|
|
return False
|
|
except Timeout:
|
|
return True
|
|
|
|
atexit.register(Lock.unlock) |