On Wednesday, 8 July 2015 at 13:08:08 UTC, Adrian Matoga wrote:


I run up against the same problem with threads when trying to play audio asynchronously - the callbacks are made from another thread which is created outside D. I solved it by disabling GC in callbacks that might invoke it, but it seems there's another solution to try out.

Why would such a callback need to allocate memory? For a similar project I used PortAudio with the D bindings [1]. In the callback, I just copy data from the D data stream to the port audio buffers and consume the copied data from the data stream. It works perfectly without any GC calls.

[1] https://github.com/D-Programming-Deimos/portaudio

Reply via email to