socket.receive([socket](std::vector<unsigned char> data) { auto task = Async(process1, data); process(data); task.wait(); socket.send(data, kNoCallback); });