Re: How to ensure a thread cannot be blocked by the GC?

2014-12-04 Thread Jacob Carlborg via Digitalmars-d-learn
On 2014-12-03 23:53, ponce wrote: I have a DLL written in D that gets called by two different threads, created by a non-D host program (audio plugin). I did not create those threads, but my understanding is that they get attached to the D runtime. No, the runtime in D doesn't know anything

Re: How to ensure a thread cannot be blocked by the GC?

2014-12-04 Thread ponce via Digitalmars-d-learn
On Thursday, 4 December 2014 at 02:01:26 UTC, Ola Fosheim Grøstad wrote: On Thursday, 4 December 2014 at 01:36:13 UTC, Ola Fosheim Grøstad wrote: So I suppose none of your threads are suspended unless you suspend it with Thread on call_back entry? But why suspend a @nogc thread? What a mess

Re: How to ensure a thread cannot be blocked by the GC?

2014-12-04 Thread via Digitalmars-d-learn
On Thursday, 4 December 2014 at 08:18:23 UTC, ponce wrote: In fact I was registering them both with core.sys.windows.dll.dll_thread_attach() when callbacked with DLL_THREAD_ATTACH, but I see now that I should instead register to the runtime only the interruptible thread. Yes, I assume you

Re: How to ensure a thread cannot be blocked by the GC?

2014-12-03 Thread ponce via Digitalmars-d-learn
On Wednesday, 3 December 2014 at 22:53:48 UTC, ponce wrote: I have a DLL written in D that gets called by two different threads, created by a non-D host program (audio plugin). I did not create those threads, but my understanding is that they get attached to the D runtime. Thread A is a

Re: How to ensure a thread cannot be blocked by the GC?

2014-12-03 Thread via Digitalmars-d-learn
On Wednesday, 3 December 2014 at 22:53:48 UTC, ponce wrote: I have a DLL written in D that gets called by two different threads, created by a non-D host program (audio plugin). I did not create those threads, but my understanding is that they get attached to the D runtime. Thread A is a

Re: How to ensure a thread cannot be blocked by the GC?

2014-12-03 Thread via Digitalmars-d-learn
On Thursday, 4 December 2014 at 00:27:49 UTC, Ola Fosheim Grøstad wrote: I assume you are referring to Windows and I have no good answer Btw, I found this page to be a nice starting point and generally a good read for writing portable code:

Re: How to ensure a thread cannot be blocked by the GC?

2014-12-03 Thread via Digitalmars-d-learn
On Thursday, 4 December 2014 at 00:27:49 UTC, Ola Fosheim Grøstad wrote: IRRC the D GC uses SIGUSR1 on unix, so there you should be able Hmmm, I have no idea why I wrote this. According to the code for the runtime it only suspends threads that inherit from Thread? GC fullcollect calls

Re: How to ensure a thread cannot be blocked by the GC?

2014-12-03 Thread via Digitalmars-d-learn
On Thursday, 4 December 2014 at 01:36:13 UTC, Ola Fosheim Grøstad wrote: So I suppose none of your threads are suspended unless you suspend it with Thread on call_back entry? But why suspend a @nogc thread? What a mess of incorrect recollection and typos (it is late, 3AM :-P): I meant to