現在テスト中です: 完了後にGitHubのコードを公開する予定です。

R · 解放済み

構造refresh

解放リクエスト(R)に対する成功レスポンスです。

tokenはリクエストに載せた値をそのまま返した相関子です — クライアントはこの値で、どの リクエストに対する応答かを特定します (応答マッチングルール)。

バイト表記: opはASCII文字、tokenはバイナリ(u64、ビッグエンディアン)、keyはUTF-8 テキスト(可変長、構造上はNと表記)です。末尾の\n0Aです。固定ヘッダはバイナリ値のため 0x0Aを含みうるので、改行を探す前にバイト数で先に消費しなければなりません。

フロー

保有者X
サーバー
待機者Y
R · 解放 (key · token)
R · 解放済み
待機者がいれば
A · 獲得済み (新しいtoken)
リクエストレスポンス

R(解放済み)は解放者にのみ送られます。待機者がいた場合は、それとは別に、キューの 先頭にいた接続が獲得済み Aを受け取ります — 再競合なしで直接引き継がれます。この2つのレスポンスは異なる接続上で送られるため、 両者の間に順序の保証は必要ありません。