T · 타임아웃
구조refresh
획득 요청(A)이 wait 안에 락을 얻지 못한 경우입니다 — 서버가 grant 없이 포기했습니다(에러 아님).
바이트 표기:
op는 ASCII 문자,owner는 바이너리(u64, 빅엔디안),key는 UTF-8 텍스트(가변, 구조에서N)입니다. 마지막\n은0A. 고정 헤더는 이진 값이라0x0A를 포함할 수 있으니 개행을 찾기 전에 바이트 수로 먼저 소비해야 합니다.
owner는 요청에 실었던 값을 그대로 되돌려 준 상관자입니다 — 클라이언트는 이 값으로 어느 요청의 응답인지 특정합니다(응답 매칭 규칙).
흐름
클라이언트
서버
A · 획득 (key · wait · lease)
점유 중 → 대기열 등록
wait 초 안에 차례가 오지 않음
T · 타임아웃
대기열에서 제거 — 재시도하려면 새 A 요청
요청응답
wait=0에서 key가 이미 점유 중이면 queue에 넣지 않고 바로 T를 보냅니다. wait=1..255인 요청은 T가 온 순간 대기열에서 이미 빠져 있으므로, 뒤늦게 락이 발급되는 일은 없습니다. 어느 경우든 token이 발급되지 않은 확정 미획득이므로 정리할 락은 없습니다. 새로 시도하려면 caller가 정한 전체 작업 deadline 안에서 새 A 요청을 만듭니다.