I don't understand why we need this mechanism at all -- why not just let the client block in recv until the server decides to update it? Simplifies a lot of logic, the client is just totally slaved to the server.