Remotery: rmt_UnbindOpenGL blocks indefinitely
after creating Remotery and OpenGL context on the same thread, and issuing rmt_BindOpenGL
on the same thread. Placing a call to rmt_UnbindOpenGL
before shutting down Remotery blocks indefnintely in Remotery_BlockingDeleteSampleTree
because of the following code:
// Wait around until the Remotery server thread has sent all sample trees
// of this type to the client
while (sample_tree->allocator->nb_inuse > 1)
msSleep(1);
The only way to get the application to close is to load up the Remotery web console in a webbrowser and wait for all the events to be sent to it. Is there a way to “jump the gun” and terminate the application even if there is samples pending?
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 53
Commits related to this issue
- don't uninitialize remotery to avoid hang See: https://github.com/Celtoys/Remotery/issues/112. — committed to zogi/voxel-fluid by zogi 6 years ago
- Renderer runtime: "RendererRuntime::RemoteryProfiler": Remotery GPU profiling: Disabled by default since it might take some shutdown time due to "rmt_UnbindOpenGL blocks indefinitely #112" - https://g... — committed to cofenberg/unrimp by cofenberg 6 years ago
- Updated external library Remotery ( https://github.com/Celtoys/Remotery ), was now unable to reproduce "TODO(co) Remotery GPU profiling: Disabled by default since it might take some shutdown time due ... — committed to cofenberg/unrimp by cofenberg 6 years ago
- Remotery ( https://github.com/Celtoys/Remotery ): I was just able to reproduce "TODO(co) Remotery GPU profiling: Disabled by default since it might take some shutdown time due to "rmt_UnbindOpenGL blo... — committed to cofenberg/unrimp by cofenberg 6 years ago
Remotery uses a global variable to keep the public API clean. When you call
rmt_CreateGlobalInstance
from your main program you must propagate the returnedRemotery
object to any DLLs usingrmt_SetGlobalInstance
.