External threads calling into D code

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jun 17 19:35:01 PDT 2014


On 06/17/2014 06:43 PM, George Sapkin wrote:
> So, me and my threads again :)
>
> I have some threads being created by libuv using start_thread() from
> libpthread calling into D code. D code (after some help from this forum)
> has been properly shared and when called from D threads and tasks works
> correctly. However when called by libuv from outside throws a
> segmentation fault when creating new dynamic array above certain size.
> The signal is from gc.Gcx.fullcollect() from libphobos2.
>
> I've figured that could be caused by GC not being enabled in threads not
> managed by D runtime, so I tried to GC.enable() when in a new thread and
> now it seems to work. Is that expected behavior and a correct solution?
> Thanks.

Without any experience on this topic, I suspect this is what you need:

   http://dlang.org/phobos/core_thread.html#.thread_attachThis

Ali



More information about the Digitalmars-d-learn mailing list