Stuck interface problem


I am wondering if you could help us debug a problem we are seeing. The repro steps are as follows:

  • Start Rhino and create cube
  • Start Render with Iray
  • Close window before it finishes rendering
  • Try to start another Render with Iray

At this point, parts of the interface are stuck. We cannot start another render, we also cannot quit. But we can navigate, etc.

In our version of the Rhino.Render.RenderPipeline class, we do receive OnRenderBegin, and when the window is closed, we receive OnRenderEnd, which we use to terminate our render and exit. However, the original thread in our Rhino.PlugIns.RenderPlugIn::Render never comes back from the pipeline.Render() call, and so we appear to have hung the scripting engine, or something similar.

From our render call, we do set the progress to 100, dispose of the channel and call EndAsyncRender to signal that we are done.

Can you see anything we have done wrong, or might be missing?

As so often happens, after spending a significant amount of time investigating and then posting the question, I found the answer a few minutes later. In our render context, there is the ContinueModal call which relies on a pipeline member variable named Done. The latter was only set when we exited normally, by setting that the problem goes away.

Sorry for the noise.

1 Like