वर्तमान में परीक्षण चल रहा है: पूरा होने पर GitHub कोड खोला जाएगा।

R · रिलीज़

संरचनाrefresh

एक लॉक रिलीज़ अनुरोध। token वही फेंसिंग टोकन है जो उस अधिग्रहण को मिला था, और लॉक केवल तभी रिलीज़ होता है जब वह वर्तमान में धारित टोकन से मेल खाता हो। प्रतिक्रिया रिलीज़ हुआ R या नहीं मिला N होती है।

token — किसी और का लॉक न खुले, इसका उपाय

टोकन जाँच के बिना एक ख़तरनाक क्रम बन जाता है। जब कोई रिलीज़ अनुरोध फ़ेलओवर के पार पुनः प्रयास कर रहा होता है, उसी बीच मूल लॉक lease समाप्ति से वापस ले लिया जाए और किसी दूसरे क्लाइंट को फिर से दे दिया जाए, तो देर से पहुँचा वह रिलीज़ उस नए धारक का लॉक खोल देगा। चूँकि रिलीज़ केवल टोकन मेल खाने पर होता है, यह रास्ता बंद हो जाता है।

टोकन भिन्न होने पर N (नहीं मिला) आता है और लॉक ज्यों का त्यों बना रहता है। रिलीज़ के पुनः प्रयास हमेशा उसी टोकन के साथ भेजे जाने चाहिए, और प्रतिक्रिया का मिलान भी वापस भेजे गए token से होता है (प्रतिक्रिया मिलान नियम)।

बाइट अंकन: op एक ASCII वर्ण है, token बाइनरी (u64, बिग-एंडियन) है, और key UTF-8 टेक्स्ट है (परिवर्तनशील-लंबाई, संरचना में N के रूप में दिखाया गया)। अनुगामी \n, 0A है। फ़िक्स्ड हेडर एक बाइनरी मान है जिसमें 0x0A हो सकता है, इसलिए नई लाइन खोजने से पहले उसे बाइट संख्या के आधार पर खपाएँ

प्रवाह

धारक X
सर्वर
प्रतीक्षक Y
R · रिलीज़ (key · token)
R · रिलीज़ हुआ
यदि प्रतीक्षक मौजूद है → A · प्रत्यक्ष हैंडऑफ़ (नया token)
यदि कुंजी मौजूद नहीं है या टोकन भिन्न है
N · नहीं मिला
अनुरोधप्रतिक्रिया

यदि रिलीज़ की गई कुंजी के लिए कोई प्रतीक्षक मौजूद है, तो उसे बिना किसी पुनर्स्पर्धा के सीधे कतार के सबसे आगे सौंप दिया जाता है — रिलीज़ करने वाले को भेजे गए R (रिलीज़ हुआ) से अलग, प्रतीक्षक को एक नया टोकन लिए A (अधिग्रहित) मिलता है।