diff --git a/gestion/lock.py b/gestion/lock.py index 219d1109..13baabc1 100755 --- a/gestion/lock.py +++ b/gestion/lock.py @@ -32,9 +32,17 @@ def make_lock(lock_name, lock_comment='',nowait=1, quiet=False) : except IOError, e: if e.errno not in [errno.EACCESS, errno.EAGAIN]: raise - # La procédure de lock est deja en cours d'execution, on essaie un peu plus tard - time.sleep(0.5) - return make_lock(lock_name, lock_comment) + if nowait: + if quiet: + # On va plutot lever une exception + raise AssertionError('In critical section') + else: + sys.stderr.write('\tpropriétaire : inconnu\n\tpid : inconnu\n\tdémarré depuis inconnu\n') + sys.exit(254) + else: + # La procédure de lock est deja en cours d'execution, on essaie un peu plus tard + time.sleep(0.5) + return make_lock(lock_name, lock_comment) if os.path.isfile(lock_file) : ### Lock existant