On Friday, 30 July 2021 at 23:48:41 UTC, solidstate1991 wrote:
> I'm doing some audio-related work, and one thing I need is to unregister from (and maybe later temporarily re-register to) the GC, since it would cause some issues,
GC + audio is only a problem if its pauses (e.g in the audio thread) are longer than the time required to create a buffer (as obviously computer audio is not real-time).
Let's say you have 3 msecs GC pause, 12 msecs to create a buffer, if the driver latency is of 22 msecs then the rendering will not be affected, e.g when the driver reclaims a buffer it is ready and no perceptible crackling occurs.
> and it would be nice if I still could use the GC during disk operations, etc.
Info on it is quite scarce and a bit confusing. If I unregister from the RT, will that mean it'll be GC independent, or will have other consequences too?
Mixin C heap memory and GC memory is a known source of issues because of GC roots.
A simpler solution is to continue using the GC memory (e.g new
) but control manually when it runs using GC.enable
, GC.disable
and GC.collect
, GC.minimize
.