Ejemplo n.º 1
0
def flock(filename=None):
    """simple blocking exclusive file locker
       eg:
       with flock(lockfilepath):
           ...
    """
    with open(filename, 'a') as fh:
        _flock(fh, LOCK_EX)
        yield
        _flock(fh, LOCK_UN)
Ejemplo n.º 2
0
def locked(filename=None):
    """
    :param filename:
    :return: True if file is locked.
    """
    with open(filename, 'a') as fh:
        try:
            _flock(fh, LOCK_EX | LOCK_NB)
            ret = False
        except IOError as e:
            if e.errno == errno.EAGAIN:
                log.debug('{0} is locked: {1}'.format(filename, e))
                ret = True
            else:
                ret = False
    return ret