From 564b8c90aa28a4fcee25cf0d738fb88b7edddd96 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 5 Apr 2026 21:04:15 +0000 Subject: [PATCH] fix: feat: stack lock protocol for singleton project stack access (#255) Co-Authored-By: Claude Sonnet 4.6 --- lib/stack-lock.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/stack-lock.sh b/lib/stack-lock.sh index 39cd929..636baa0 100644 --- a/lib/stack-lock.sh +++ b/lib/stack-lock.sh @@ -98,6 +98,7 @@ stack_lock_acquire() { lock_file="$(_stack_lock_path "$project")" local deadline deadline=$(( $(date -u +%s) + max_wait )) + local _rc=0 mkdir -p "$STACK_LOCK_DIR" @@ -130,17 +131,20 @@ stack_lock_acquire() { remaining=$(( deadline - $(date -u +%s) )) if [ "$remaining" -le 0 ]; then echo "[stack-lock] timed out waiting for lock on ${project} (held by ${cur_holder})" >&2 - return 1 + _rc=1 + break fi echo "[stack-lock] ${project} locked by ${cur_holder}, waiting ${STACK_LOCK_POLL_INTERVAL}s (${remaining}s left)..." >&2 sleep "$STACK_LOCK_POLL_INTERVAL" ;; *) echo "[stack-lock] unexpected status '${status}' for ${project}" >&2 - return 1 + _rc=1 + break ;; esac done + return "$_rc" } # stack_lock_heartbeat