Subject: Re: bug#79346: igc: PolicyShouldCollectWorld

From: Helmut Eller <[email-masked]>
Date: Fri, 05 Sep 2025 18:57:35 +0200

On Fri, Sep 05 2025, Eli Zaretskii wrote:

[...]
>> Below is a patch that does this.
>> 
>> The idle timer waits 2 seconds, before it calls mps_arena_step.  As
>> usual, "idle time" is the time since the last command completed, i.e. 2
>> seconds must pass after a command before the idle timer fires.  (Other
>> timers or process filters don't reset "idle time"; only new commands
>> do.)  I think that should avoid the problem that I've seen where
>> opportunistic GC was started while I was in the middle of typing
>> something.
>> 
>> The code uses a constant to predict the idle time; maybe one could to
>> something a bit more clever; not sure if that would be worth the
>> trouble.
>
> AFAIU, this makes GC-on-idle run off an idle timer, instead of using
> internal implementation in C, is that right?

Yes, right.

> If so, I'm not very happy doing this, as the default mechanism.
> Timers are hard to reason about, when other timers, let alone other
> Lisp threads, are present, and the result might be more complex
> system, which is harder to understand and maintain.
>
> It is okay to allow this to run off an idle timer, as an opt-in
> feature.  But let's leave the internal implementation as the default,
> at least for now.

The patch was not committed, AFAIK.

Helmut