I'm currently quite undecided on what is actually the best approach to tackle this problem.
Assuming the program only consists of:
- GUI using imgui and glfw
- OSC Server that listens for incoming messages
The gui cannot block and the osc server constantly needs to be able receive new messages. So first of all, would it be sufficient to use a thread for the osc server that needs to run in parallel with the gui or would a separate process be better?
Then there's the communication aspect, i don't want to ui to be blocked but still have the newest available data from the osc server. How can this be achieved? Is there something better than a queue? I don't really mind if the gui skips one or two new values, as i'm smoothing anyway, but gui should never have to wait to acquire the mutex.
Also recently learned about the GIL in python, is there anything related that i need to take into account?
Would appreciate any input on this :).