On Monday, 13 September 2021 at 17:54:43 UTC, eugene wrote:
full src is here
http://zed.karelia.ru/0/e/edsm-in-d-2021-09-10.tar.gz

I've also made two simple examples, just in case

- http://zed.karelia.ru/0/e/edsm-in-d-simple-example-1.tar.gz
Program does nothing, just waits for ^c, does not crash upon SIGINT.

Now, let's put some pressure on garbage collector
- http://zed.karelia.ru/0/e/edsm-in-d-simple-example-2.tar.gz

Every 10 ms do some allocations:

```d
    void mainIdleEnter() {
        tm0.enable();
        tm0.heartBeat(10); // milliseconds
    }

    void mainIdleT0(StageMachine src, Object o) {
        int[] a;
        foreach (k; 0 .. 1000) {
            a ~= k;
        }
    }
```
After 3 seconds from the start destructors are called

edsm-in-d-simple-example-2 $ ./test | grep owner
!!! esrc.EventSource.~this() : esrc.Signal (owner STOPPER, fd = 5) this @ 0x7fa267872150 !!! esrc.EventSource.~this() : esrc.Signal (owner STOPPER, fd = 6) this @ 0x7fa267872180

After this happens, pressing ^C results in segfault.

Reply via email to