Program crash: GC destroys an object unexpectedly
eugene
dee0xeed at gmail.com
Sun Sep 19 20:42:09 UTC 2021
On Sunday, 19 September 2021 at 16:27:55 UTC, jfondren wrote:
> This is also a sufficient patch to prevent the segfault:
>
> ```
> diff --git a/echo_client.d b/echo_client.d
> index 1f8270e..0b968a8 100644
> --- a/echo_client.d
> +++ b/echo_client.d
> @@ -39,4 +39,6 @@ void main(string[] args) {
> auto md = new MessageDispatcher();
> md.loop();
> writeln(" === Goodbye, world! === ");
> + writeln(stopper.sg0.number);
> + //writeln(stopper.sg1.number);
> }
This one really helps, program terminates as expected:
```
'MAIN @ IDLE' got 'T0' from 'OS'
'MAIN @ IDLE' got 'T0' from 'OS'
^Csi.sizeof = 128
'STOPPER @ IDLE' got 'S0' from 'OS'
0
=== Goodbye, world! ===
___!!!___edsm.StageMachine.~this(): MAIN destroyed...
ecap.EventQueue.~this
!!! esrc.EventSource.~this() : esrc.Timer (owner MAIN, fd = 4)
this @ 0x7f15e6c870c0
___!!!___edsm.StageMachine.~this(): STOPPER destroyed...
!!! esrc.EventSource.~this() : esrc.Signal (owner STOPPER, fd
= 5) this @ 0x7f15e6c8a150
!!! esrc.EventSource.~this() : esrc.Signal (owner STOPPER, fd
= 6) this @ 0x7f15e6c8a180
```
More information about the Digitalmars-d-learn
mailing list