David_W (70) [Avatar] Offline
You could have used the Callable interface from Java 5.
ramnivas (171) [Avatar] Offline
Re: RunnableWithReturn in 12.1.4
I did consider this, but didn't go for it.

Since Call.call() returns a value, invoking call() on such a worker object will not work well with asynchronous routing. For example, with RunnableWithReturn, you can join the thread (after perhaps doing some additional work after handing over the work object to that thread) and then obtain the return value. With Callable, that possibility becomes complicated returning the use of Future etc. This can be done. But that could have complicated explaining the pattern itself.