R · Libération
Une requête de libération de verrou. token est le jeton de fencing reçu lors de cette acquisition, et la libération n'a lieu que s'il correspond au jeton actuellement détenu. La réponse est Libéré R ou Introuvable N.
token — le mécanisme qui évite de relâcher le verrou d'autrui
Sans vérification du jeton, un enchaînement dangereux devient possible. Pendant qu'une requête de libération est réessayée à travers un basculement, le verrou d'origine peut être récupéré par l'expiration du lease puis réoctroyé à un autre client — et la libération arrivée en retard relâcherait alors le verrou de ce nouveau détenteur. Ne libérer que si le jeton correspond ferme ce chemin.
Si le jeton diffère, N (introuvable) arrive et le verrou reste intact. Les nouveaux essais de libération doivent toujours être envoyés avec le même jeton, et la correspondance des réponses utilise elle aussi le token renvoyé en écho (Règles de correspondance des réponses).
Notation des octets :
opest un caractère ASCII,tokenest binaire (u64, big-endian), etkeyest du texte UTF-8 (longueur variable, notéeNdans la structure). Le\nfinal est0A. L'en-tête fixe est une valeur binaire et peut contenir0x0A: il faut donc le consommer d'abord selon son nombre d'octets, avant de chercher le retour à la ligne.
Flux
Si un attendant existe pour la clé libérée, elle lui est remise directement à la tête de la file, sans nouvelle mise en concurrence — séparément du R (libéré) envoyé à celui qui libère, l'attendant reçoit un A (acquis) portant un nouveau jeton.