I’ve moved Csound control via csoundengine entirely over to the QThread. Before I had been instantiating csoundengine within the GUI thread and passing the session object into the QThread for Csound data reading. Now I’m instantiating csoundengine in the QThread itself and all reading of Csound data is done from the QThread and passed to the GUI thread via signals/slots.
Should that make a meaningful difference as far as threading issues go? I haven’t experienced a crash in the past day, but time will tell if the issue is resolved. Clearly my understanding of threading and concurrency is nascent. Thanks for your patience!
I’ve done three days of development since making the last change, and I’ve had no crashes. The program feels a lot more stable now that the Csound control is happening outside of the GUI thread. Thanks again for everyone’s help!