I'm not sure if to report this bug in vrpn, OSVR-Core or OSVR-RenderManager.
Sometimes the RenderManagerOpenGL*Examples hang when the first call to osvrClientUpdate() is made.
I can reproduce this on Debian 9 if I build the examples like this:
g++ -g -Wall -lGLEW -lGL -losvrRenderManager -losvrClient -losvrClientKit -losvrCommon RenderManagerOpenGLCAPIExample.cpp -o bad
But they work normally if I build them like this:
g++ -g -Wall -lGLEW -lGL -losvrClient -losvrRenderManager -losvrClientKit -losvrCommon RenderManagerOpenGLCAPIExample.cpp -o good
The only difference is the link order. The 'bad' link order is the one used in the cmake build of OSVR-RenderManager, so all these RenderManagerOpenGL*Examples hang on Debian 9.
Debugging this a little, osvrClientUpdate() is ultimately calling vrpn_Endpoint_IP::handle_udp_messages without a timeout, and the handling of these messages appears to be taking long enough that more packets are arriving before the previous has been handled, resulting in the loop not terminating.
I'm not sure if to report this bug in vrpn, OSVR-Core or OSVR-RenderManager.
Sometimes the RenderManagerOpenGL*Examples hang when the first call to osvrClientUpdate() is made.
I can reproduce this on Debian 9 if I build the examples like this:
g++ -g -Wall -lGLEW -lGL -losvrRenderManager -losvrClient -losvrClientKit -losvrCommon RenderManagerOpenGLCAPIExample.cpp -o bad
But they work normally if I build them like this:
g++ -g -Wall -lGLEW -lGL -losvrClient -losvrRenderManager -losvrClientKit -losvrCommon RenderManagerOpenGLCAPIExample.cpp -o good
The only difference is the link order. The 'bad' link order is the one used in the cmake build of OSVR-RenderManager, so all these RenderManagerOpenGL*Examples hang on Debian 9.
Debugging this a little, osvrClientUpdate() is ultimately calling vrpn_Endpoint_IP::handle_udp_messages without a timeout, and the handling of these messages appears to be taking long enough that more packets are arriving before the previous has been handled, resulting in the loop not terminating.