do all checks with lock

This commit is contained in:
meejah 2022-09-25 00:46:30 -06:00
parent 8991509f8c
commit d42c00ae92

View File

@ -21,22 +21,22 @@ def can_spawn_tahoe(pidfile):
except FileNotFoundError: except FileNotFoundError:
return True return True
# somewhat interesting: we have a pidfile # somewhat interesting: we have a pidfile
pid = int(pid) pid = int(pid)
create_time = float(create_time) create_time = float(create_time)
try: try:
proc = psutil.Process(pid) proc = psutil.Process(pid)
# most interesting case: there _is_ a process running at the # most interesting case: there _is_ a process running at the
# recorded PID -- but did it just happen to get that PID, or # recorded PID -- but did it just happen to get that PID, or
# is it the very same one that wrote the file? # is it the very same one that wrote the file?
if create_time == proc.create_time(): if create_time == proc.create_time():
# _not_ stale! another intance is still running against # _not_ stale! another intance is still running against
# this configuration # this configuration
return False return False
except psutil.NoSuchProcess: except psutil.NoSuchProcess:
pass pass
# the file is stale # the file is stale
pidfile.unlink() pidfile.unlink()