Double-recursive calls to InteractiveVtkComposite.Render()
In some situations, it is possible for a call to InteractiveVtkComposite.Render()
to be triggered from InteractiveVtkComposite.firePostRender()
via AbstractVTKNodeMap.postRender()
. When a commit is triggered in the postRender()
call, a new event loop is started for the IProgressService.busyCursorWhile()
call. When this loop handles re-rendering requests, these requests are ignored.
Solution:
Handle commit operations from AbstractVTKNodeMap.postRender()
as an async task in order to avoid blocking the InteractiveVtkComposite.firePostRender()
call for a prolonged period of time.
Performing commit operations as a post-render event should probably be entirely reconsidered.