On Thursday, 23 September 2021 at 14:23:40 UTC, eugene wrote:
On Thursday, 23 September 2021 at 14:00:30 UTC, eugene wrote:
For the moment I am personally quite happy
```d
void main(string[] args) {
import core.memory : GC;
auto Main = new Main();
GC.addRoot(cast(void*)Main);
Main.run();
auto stopper = new Stopper();
GC.addRoot(cast(void*)stopper);
stopper.run();
```
Fine, works!
Nice. I thought of GC.addRoot several times but I was distracted
by the general solution of using object lifetimes with it, so
that a struct's destructor would call GC.removeRoot. For your
case just pinning these and forgetting about them is the easiest
way to do it.