Am Mo., 14. Nov. 2022 um 20:01 Uhr schrieb John Cowan <[email protected]>:
>
>
>
> On Thu, Nov 10, 2022 at 3:16 PM Marc Nieper-Wißkirchen 
> <[email protected]> wrote:
>
>> 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.
>
>
> I don't understand this at all.  First of all, I don't know what you mean by 
> a thread-runner procedure.  There is the procedure `with-thread-runner`, 
> which returns when its threads have terminated normally or abnormally.  It 
> passes a thread-runner object (a container for threads) to its body thunk, 
> whose purpose is to start threads and register them with the thread-runner 
> object.  So with-thread-runner actually needs to wait until its registered 
> threads terminate *and* the body thunk (which runs in the same thread as 
> with-thread-runner) has returned.

I meant the procedure PROC that is passed to `with-thread-runner`:

(with-thread-runner PROC) where PROC is something like (lambda (t-r-o) ...).

When it returns, the threads that are still running need to be waited
for.  When we add a timeout parameter, shall it be fixed at the
beginning or dynamically determined?  In the latter case, a possible
signature of with-thread-runner could be

(with-thread-runner PROC THUNK-RETURNING-TIMEOUT)

>
>>
>> 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?
>
>
> They should be terminated with a timeout exception.  No thread-join is 
> needed, because that's what thread-runners do.
>
>>

Reply via email to