From d81797c84711dce9f48628b8e860c8bf6a3af239 Mon Sep 17 00:00:00 2001 From: bernat Date: Sun, 5 Dec 2004 14:34:47 +0100 Subject: [PATCH] Section critique non bloquante darcs-hash:20041205133447-d1718-952ffc9db50a4b41190f9be0565e416d99cbaf4a.gz --- gestion/lock.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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