Crazy code by Adam on SO
Adam D. Ruppe via Digitalmars-d
digitalmars-d at puremagic.com
Fri Aug 29 10:37:00 PDT 2014
On Friday, 29 August 2014 at 17:29:34 UTC, H. S. Teoh via
Digitalmars-d wrote:
> The code figures out which signals to send to which delegates
> *at runtime*. The way this is done is to use the .mangleof of
> the struct's type as key to an AA
I think there might be an easier way to do this too: cast(size_t)
typeid(T). That'd be a unique integer for each type too that
could be passed through the pipe... IIRC the reason I went with
the mangle hash though was to work across processes, where the
TypeInfo pointer might not as reliable (my rpc.d file works more
in that direction but I can't recall if I actually finished it or
not).
BTW that eventloop thing uses malloc/free now whereas in the
first draft it used the GC. Why? While the pointer was sitting in
the kernel pipe buffer, the GC would sometimes collect it,
causing random crashes. Just because the pointer hasn't left the
program entirely doesn't mean the GC can still see it! I think I
wrote this story in my book too in one of those little info boxes.
More information about the Digitalmars-d
mailing list