Hi!

I'm running into some weird threading issue with vibe.

My app basically listens for HTTP requests, and each request pushes a task into the worker-thread queues with runWorkerTask(), saves a file to disk using vibe's non-blocking FileStream.write(), and then waits for the task to finish with receiveOnly().

The worker task basically does some blocking IO through a foreign library, and then sends the results back to the request fiber with send();

This approach should be solid, right?

This all works fine as long as there is only one request at any given time. When I introduce concurrent requests, as little as 2, it immediately crashes, with no callstack or error message on Linux. On Windows I get a "Resuming task in foreign thread." assert.

I was wondering what is the best way to debug these? Workarounds? Ideas? :)

Cheers,
-M