What is the likely future of the trackAllThreads flag?

> On Jan 10, 2026, at 9:43 AM, Alan Bateman <[email protected]> wrote:
> 
> On 10/01/2026 11:04, Andrew Haley wrote:
>> :
>> 
>> Maybe it's waiting on some kind of semaphore that has become unreachable. In 
>> that case, the thread cannot make any progress. It makes no difference 
>> whether you GC it or not. The native resources it holds will never be 
>> released. Semantically, an unreachable thread is not a thing: it has no 
>> properties.
>> 
>> Therefore, any thread that is unreachable may be GC'd, surely.
>> 
>> I guess I may be missing some way that an unreachable thread is observable? 
>> If so, what is it?
>> 
> Diagnosing resource leaks, semaphore permit "leaks" etc. is much harder if 
> threads can be GC'ed before they terminate.
> 
> We looked into the implications of ephemeral threads a few years ago. Aside 
> from being fragile to use, they lead to issues that range from mildly spooky 
> to truly horrifying. Think of cleaners running when objects are in 
> inconsistent state. Think of objects with finalizers that put a "goodbye" 
> element to a queue and cause a thread to come back from the dead. There's a 
> lot more to this. The summary is that introducing ephemeral threads has huge 
> implications due to the interactions with so many parts of the system. We 
> decided not to spend further time on it.
> 
> -Alan
> 

Reply via email to