On Tuesday, 14 September 2021 at 12:09:03 UTC, Steven
Schveighoffer wrote:
Though as I have learned helping C converts before, most of the
time things like this have to do with forgetting to store a GC
reference somewhere.
Yeah, in my first version I had
```d
foreach (k; 0 .. nConnections) {
auto sm = new EchoClient(rxPool, txPool);
sm.run();
}
```
instead of
```d
EchoClient[] wrkMachines;
foreach (k; 0 .. nConnections) {
auto sm = new EchoClient(rxPool, txPool);
wrkMachines ~= sm;
sm.run();
}
```
and even
```d
{
auto stopper = new Stopper();
stopper.run();
}
```
:)
I still recommend pinning the object when adding the epoll
event and seeing if that helps.
I understand your idea, but even if this will help, the question
remains - why that particular object is so special for GC.