euijinrnd's picture
Add files using upload-large-folder tool
9de9fbf verified
raw
history blame contribute delete
655 Bytes
import fcntl
class FileLock:
"""
A file lock class.
"""
def __init__(self, filename):
self.filename = filename
self.handle = None
def acquire_read_lock(self):
self.handle = open(self.filename + '.lock', 'r')
fcntl.flock(self.handle, fcntl.LOCK_SH | fcntl.LOCK_NB)
def acquire_write_lock(self):
self.handle = open(self.filename + '.lock', 'w')
fcntl.flock(self.handle, fcntl.LOCK_EX | fcntl.LOCK_NB)
def release_lock(self):
if self.handle is not None:
fcntl.flock(self.handle, fcntl.LOCK_UN)
self.handle.close()
self.handle = None