On Tuesday, 21 December 2021 at 01:13:10 UTC, Ali Çehreli wrote:
I bet it's throwing an Error. Call your thread entry function from a try-catch wrapping function to see whether that's the case:

// Rename existing function:
protected void audioThreadImpl() @nogc nothrow {
  // ...
}

// New function
protected void audioThread() @nogc nothrow {
  try {
    audioThreadImpl();

  } catch (Error err) {
    stderr.writefln!"ERROR: %s"(err);
  }
}

That should print a call stack. You can catch Throwable instead of Error but with nothrow, it's guaranteed that it's not an Exception.

Note: nothrow means "does not throw Exception". Errors can still be thrown.

Ali

I couldn't add those lines unfortunately, but I do get an exception in a destructor at line 218 of `wasapi.d`. It's access violation executing a location.

Reply via email to