On Tuesday, 20 February 2024 at 18:33:42 UTC, Carl Sturtivant
wrote:
2.
The C source calls exit() from C's stdlib, and D needs to
terminate properly.
What do you mean by "need"? You can call
https://dlang.org/phobos/core_stdc_stdlib.html#.exit from D:
```d
import std.stdio;
void main()
{
scope(exit) writeln("Bye");
import core.stdc.stdlib : exit;
exit(0);
}
shared static ~this()
{
writeln(__FUNCTION__);
}
```
Output:
```
onlineapp._sharedStaticDtor_L11_C1
```
So it does run module destructors, but not `scope(exit)`
statements (which probably makes sense).
I would expect `exit()` called from the C source to have similar
results.
--Bastiaan