As a long time Java programmer (since v0.9!), I'd just like to throw in that I don't see any particular practical benefit to leveraging Runnable or Callable<V>. Sure, they are just interfaces, and you could re-use them. But beyond that, especially with respect to Callable<V>, almost nothing execution related from java.util.concurrent is applicable to thread-less JavaScript. Borrowing one interface from java.util.concurrent because it has the same signature, yet not implementing any of the java.util.concurrent features is more confusing to a Java programmer coming to GWT.
So while I appreciate Eric's point of view, I don't share it. Jason's suggestion of re-using Executor and ExecutorService is also likely not practicable in GWT because of ExecutorService's blocking methods (invokeAll(), awaitTermination). Ray's last suggestion gets my vote. It looks substantially like the existing pattern and does not inject unnecessary new controller or scheduler classes. I'm of the "simplest thing that can possibly work" school of thought as of late. Brett Wooldridge --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
