Thanks for the comments.
> For doc of AsyncGet#get, would 'When timeout == 0' better be 'When timeout = 0'?
Indeed, == is more appropriate since = means assignmeent in Java.
> @return doc should be added for Util#asyncGetTimeout2WaitTimeout
Will revise the javadoc, although this is just an internal utility method.
> In Util#asyncGetTimeout2WaitTimeout, it returns 1 ms, is it possible to lead to overhead given huge number of calls? ...
It does not seem to cause any real problem. For simplicity, let's keep the current code. We may change it later if it is indeed a real problem.
> In ipc.Client#call, make #get override has the same signature as AsyncGet#get, ...
The current declaration is better since it throws fewer exceptions. Same applies to #3.
> If getRpcResponse throws IOException, there's no chance to change done back
When getRpcResponse throws IOException, the call is actually done, although it fails.