Zachary Turner c432c8f856 Move lldb/test to lldb/packages/Python/lldbsuite/test.
This is the conclusion of an effort to get LLDB's Python code
structured into a bona-fide Python package.  This has a number
of benefits, but most notably the ability to more easily share
Python code between different but related pieces of LLDB's Python
infrastructure (for example, `scripts` can now share code with
`test`).

llvm-svn: 251532
2015-10-28 17:43:26 +00:00

28 lines
617 B
Python

"""
Interprocess mutex based on file locks
"""
import fcntl
import os
class Lock:
def __init__(self, filename):
self.filename = filename
# This will create it if it does not exist already
unbuffered = 0
self.handle = open(filename, 'a+', unbuffered)
def acquire(self):
fcntl.flock(self.handle, fcntl.LOCK_EX)
# will throw IOError if unavailable
def try_acquire(self):
fcntl.flock(self.handle, fcntl.LOCK_NB | fcntl.LOCK_EX)
def release(self):
fcntl.flock(self.handle, fcntl.LOCK_UN)
def __del__(self):
self.handle.close()