dispatcher

user1234 via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Sep 6 02:47:34 PDT 2017


On Wednesday, 6 September 2017 at 05:57:18 UTC, Psychological 
Cleanup wrote:
> I have a C callback that must call some functions declared in 
> D. I can't call them off the C thread because it will result in 
> a violation. What is a good way to dispatch the call to the 
> main D program?
>
> I'm thinking that I might have to create an extra thread that 
> monitors for when a call needs to occur and does so. Doesn't 
> seem very effective though? Does anyone know how C# does it?

1/ mark the D function as "extern(C)".
2/ take care to how things are passed to the D functions, 
especially arrays.
3/ take care not to mutate memory created from the D side...i.e 
copy after the call.


More information about the Digitalmars-d-learn mailing list