Actualmente en pruebas: el código de GitHub se abrirá al finalizar.

R · Liberado

Estructurarefresh

La respuesta de éxito a una solicitud de liberación (R).

Notación de bytes: op es un carácter ASCII, token es binario (u64, big-endian), y key es texto UTF-8 (longitud variable, mostrado como N en la estructura). El \n final es 0A. La cabecera fija es un valor binario y puede contener 0x0A, así que hay que consumirla primero según su número de bytes antes de buscar el salto de línea.

token es el correlador: el valor enviado en la solicitud, devuelto sin cambios. Con él el cliente identifica de qué solicitud es esta la respuesta (Reglas de emparejamiento de respuestas).

Flujo

Poseedor X
Servidor
Esperador Y
R · liberar (key · token)
R · liberado
si hay un esperador
A · adquirido (nuevo token)
solicitudrespuesta

R (liberado) va solo a quien libera. Si existía un esperador, por separado, la conexión al frente de la cola recibe Adquirido A — entregado directamente sin volver a competir por él. Las dos respuestas salen por conexiones distintas, así que no se requiere ningún orden entre ellas.