Program crash: GC destroys an object unexpectedly
jfondren
julian.fondren at gmail.com
Sat Sep 18 09:54:05 UTC 2021
On Saturday, 18 September 2021 at 09:39:24 UTC, eugene wrote:
> The definition of this struct was taken from
> /usr/include/dmd/druntime/import/core/sys/linux/epoll.d
...
> If the reason for crash was in EpollEvent alignment,
> programs would segfaults always very soon after start,
> just right after the very first return from epoll_wait().
The struct's fine as far as libc and the kernel are concerned.
epoll_wait is not even using those 64 bits or interpreting them
as containing any kind of data, it's just moving them around for
the caller to use. It's also not a hardware error to interpret
those bits where they are as a pointer. They are however not
64-bit aligned so D's GC is collecting objects that only they
point to.
More information about the Digitalmars-d-learn
mailing list