Concerning the design of the thread runner facility, the following needs to be resolved:
1. John, you suggested adding an optional timeout parameter to `with-thread-runner'. It may be better to add an optional thunk argument that is called when the thread runner procedure returns. The thunk is supposed to return a timeout. This can be helpful if the timeout should depend on the current program state. 2. If a timeout happens, what should be the return values for the threads that didn't finish in time? Or no particular return value and let the following thread-join! with a timeout of 0 detect it? 3. The body of the thread runner procedure can be entered several times, the typical problem in Scheme when trying to make things from other languages work. We could give a thread-running procedure unprotect-wind semantics, not allowing reentering the dynamic extent, but this could limit the facility's applicability. 4. What should happen when the thread runner is GC'd (e,g, because a thread is abnormally terminated)? Should the registered threads be terminated as well? I would like to hear your opinions about these design issues. Thanks, Marc
