interface ICollab extends Runnable { static final Runnable DONE = r { fail("Collab done") }; // returns null => sleep // returns done => all work done Runnable grabWork(); void addWork(Runnable work); }