srecord noeq FastCollabWorker(ICollab collab) extends Thread { volatile gettable long errorCount; volatile gettable Throwable lastError; run { Runnable work; while ((work = collab.grabWork()) != collab.done) { try { work?.run(); } catch e { ++errorCount; lastError = e; } } } }