For the two new execute() methods you are proposing, are you also suggesting that they be implemented on the server?
I took a look at the C++ API. The C++ API also has a ResultCollector.getResult(timeout) method. Does that timeout do anything, given that execute(timeout) already waited for the given timeout? Long term, are you thinking that we should remove execute() with no parameters and getResult(timeout) and just have these two blocking execute(timeout) methods on the server and clients? I think you are right that we shouldn't change the behavior of the existing execute() to avoid breaking our users. But I also want to understand what our long term plan is for a consistent and sensible API. -Dan