def _acquire(self, exclusive=True, blocking=True):
flag = fcntl.LOCK_SH
if exclusive:
flag = fcntl.LOCK_EX
if not blocking:
flag |= fcntl.LOCK_NB
try:
logger.debug("Acquiring lock on {}".format(self.filename))
fcntl.flock(self.handle, flag)
except IOError as e:
if e.errno == errno.EAGAIN:
raise AlreadyLocked()
self._locked = True
return self
评论列表
文章目录