"""
Interprocess mutex based on file locks
"""

import fcntl


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()
