feat(viz): screen refresh issues
Description
A deadlock may occur because of the way we force Qt to refresh our OpenGLWidget upon creation.
Steps to reproduce
Hard to reproduce since this is a race condition. We observed it in the following case:
- service A emits a signal() to call B::fn1()
- service B locks data Z, then creates a
SRender
, thus an OpenGLWidget should be created - the trigger of the Qt process loop triggers B::fn1() before creating the OpenGLWidget
- B::fn1() locks data Z
- end of the game
Functional specifications
No deadlock should occur.
Technical specifications
We manage to overcome the issue by sending the Qt event directly instead of passing by the event loop
Test plan
...