X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/rhodes/blobdiff_plain/b93ad432a05ead513aae2691dc45885202bb54ed..75c2c06a8c9545871fefbe3e57ff283023c37e07:/rhodes diff --git a/rhodes b/rhodes index 8152999..b9d97fa 100755 --- a/rhodes +++ b/rhodes @@ -286,7 +286,7 @@ def maybe_cleanup_worker(dir, db, pid): def maybe_kill_worker(dir, pid): f = OS.path.join(dir, 'lk.%d' % pid) - try: fd = OS.open(f, OS.O_RDONLY) + try: fd = OS.open(f, OS.O_RDWR) except OSError, err: if err.errno != E.ENOENT: raise ExpectedError, 'open lockfile: %s' % err return @@ -466,7 +466,8 @@ def step(dir, cmd, *args): ## we lose a bunch of work. :-( c.execute("""SELECT pid FROM workers WHERE p = ? AND k = ?""", (str(p), k)) - for pid, in c: maybe_kill_worker(dir, pid) + for pid, in c: + if pid != mypid: maybe_kill_worker(dir, pid) c.execute("""DELETE FROM workers WHERE p = ? AND k = ?""", (str(p), k - 1)) c.execute("""DELETE FROM points WHERE p = ? AND k = ?""",