Saat ini dalam pengujian: kode GitHub akan dibuka setelah selesai.

T · Timed Out

Strukturrefresh

Dikirim saat request acquire (A) gagal mendapatkan lock dalam batas wait — server menyerah tanpa memberikan lock (ini bukan error).

Notasi byte: op berupa karakter ASCII, owner bersifat biner (u64, big-endian), dan key berupa teks UTF-8 (panjang variabel, ditampilkan sebagai N di struktur). \n di akhir adalah 0A. Header tetap adalah nilai biner yang bisa mengandung 0x0A, jadi konsumsi berdasarkan jumlah byte lebih dulu sebelum mencari newline.

owner adalah nilai dari request yang dipantulkan apa adanya — klien memakainya untuk menentukan request mana yang dijawab respons ini (Aturan pencocokan respons).

Alur

Klien
Server
A · acquire (key · wait · lease · owner)
sedang dipegang → masuk antrean
giliran tidak datang dalam wait detik
T · timed out
dihapus dari antrean — kirim A baru untuk mencoba lagi
permintaanrespons

Pada saat T tiba, request tersebut sudah dihapus dari antrean, sehingga lock tidak akan pernah diberikan kepadanya di kemudian hari. Karena tidak ada token yang diterbitkan, tidak ada yang perlu dibersihkan — cukup coba lagi.