Non-blocking logging finished
Captain's Log: Stardate 77535.6
The new realtime-safe logging system is now finished. I'm very happy with the results -- I can now log diagnostic data from the realtime audio thread without any risk of introducing hiccups (no allocation, no lock), and I also fixed some bugs where stacktraces due to crashes might not get flushed to disk. I added an escape hatch for things like logging stacktraces where you can punch through the asynchronous layer and write straight to disk and flush, without any worry your important log message gets stuck in a buffer somewhere. This is handy for the crash handler, as well as the unit tests.
I think in the coming weeks I might keep working on foundational stuff like this, rather than new user-visible features. It would be nice to get Anukari to the point where I could reasonably open it up for a super-pre-pre-alpha for a handful of trusted people, but that's not worth doing until I've fixed the most critical bugs. I'm still not sure when I want to do a pre-alpha, but I like the idea that the foundation is ready whenever I feel like the actual product is ready. Plus I'm on an infrastructure roll, so maybe it will go fast. 🙂