Can continuation support finally solve the "How do I stop this thread" problem?

Archie Cobbs archie.cobbs at
Fri Sep 2 15:15:02 UTC 2022

On Thu, Sep 1, 2022 at 11:42 PM David Holmes <david.holmes at>

> > So my question is simply what's the implementation distance between X
> > and Y? Where X = [We are now after implementing virtual threads], and Y
> > = [The ability to always unblock a blocked thread].
> >
> > For the sake of clarity let's assume whoever wants to do this is able to
> > rewrite bytecode (e.g., to add checks for a "stop" flag on backward
> > branches) to avoid infinite loops, etc., so the only real barrier is the
> > thread being stuck in a blocking method call.
> To which the only general solution is "only block using mechanisms you
> control and which are interruptible". There is no general solution to a
> blocking OS call unless the OS provides a mechanism to do so.

OK, it sounds like you're saying that there exists some system call X from
which we can't unblock a thread.

So what happens when a virtual thread invokes X? Isn't that going to "lock
up" the underlying platform thread (or whatever) while X is blocked?


Archie L. Cobbs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the loom-dev mailing list