<div dir="ltr">Hi,<div><br></div><div>Currently I am writing a small webservice (using the Casablanca rest library from Microsoft) that should output a png image from a metaimage I have stored on disk.</div><div>Problem seems to be however that when I call the folllowing code in the thread that handles the web request, it just hangs on the Update call</div><div><br></div><div><div> vtkSmartPointer<vtkMetaImageReader> reader = vtkSmartPointer<vtkMetaImageReader>::New();</div><div>    reader->SetFileName("image.mhd");</div><div>    reader->SetFileLowerLeft(true);</div><div>    reader->Update();</div></div><div><br></div><div>When I run this code in the main thread of my application it does read the image, but when I put the code in the handler for the http requests (I guess different thread) it hangs.</div><div><br></div><div>When stepping through the code it seems that it hangs at the fflush(NULL) line in MetaObject::ReadStream.</div><div><br></div><div><div>        vtkmetaio-7.0.dll!vtkmetaio::MetaObject::ReadStream(int _nDims, std::basic_ifstream<char,std::char_traits<char> > * _stream) Line 319<span class="Apple-tab-span" style="white-space:pre">        </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkmetaio-7.0.dll!vtkmetaio::MetaImage::ReadStream(int _nDims, std::basic_ifstream<char,std::char_traits<char> > * _stream, bool _readElements, void * _buffer) Line 1283<span class="Apple-tab-span" style="white-space:pre">       </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkmetaio-7.0.dll!vtkmetaio::MetaImage::Read(const char * _headerName, bool _readElements, void * _buffer) Line 1252<span class="Apple-tab-span" style="white-space:pre">        </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkIOImage-7.0.dll!vtkMetaImageReader::ExecuteInformation() Line 82<span class="Apple-tab-span" style="white-space:pre"> </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkIOImage-7.0.dll!vtkMetaImageReader::RequestInformation(vtkInformation * __formal, vtkInformationVector * * __formal, vtkInformationVector * outputVector) Line 252<span class="Apple-tab-span" style="white-space:pre">       </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkImageAlgorithm::ProcessRequest(vtkInformation * request, vtkInformationVector * * inputVector, vtkInformationVector * outputVector) Line 109<span class="Apple-tab-span" style="white-space:pre">     </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkExecutive::CallAlgorithm(vtkInformation * request, int direction, vtkInformationVector * * inInfo, vtkInformationVector * outInfo) Line 775<span class="Apple-tab-span" style="white-space:pre">      </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkDemandDrivenPipeline::ExecuteInformation(vtkInformation * request, vtkInformationVector * * inInfoVec, vtkInformationVector * outInfoVec) Line 481<span class="Apple-tab-span" style="white-space:pre">       </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkStreamingDemandDrivenPipeline::ExecuteInformation(vtkInformation * request, vtkInformationVector * * inInfoVec, vtkInformationVector * outInfoVec) Line 412<span class="Apple-tab-span" style="white-space:pre">      </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkDemandDrivenPipeline::ProcessRequest(vtkInformation * request, vtkInformationVector * * inInfoVec, vtkInformationVector * outInfoVec) Line 237<span class="Apple-tab-span" style="white-space:pre">   </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation * request, vtkInformationVector * * inInfoVec, vtkInformationVector * outInfoVec) Line 336<span class="Apple-tab-span" style="white-space:pre">  </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkDemandDrivenPipeline::UpdateInformation() Line 406<span class="Apple-tab-span" style="white-space:pre">       </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkStreamingDemandDrivenPipeline::Update(int port) Line 347<span class="Apple-tab-span" style="white-space:pre"> </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkAlgorithm::Update(int port) Line 1456<span class="Apple-tab-span" style="white-space:pre">    </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>vtkCommonExecutionModel-7.0.dll!vtkAlgorithm::Update() Line 1450<span class="Apple-tab-span" style="white-space:pre">    </span>C++</div><div> <span class="Apple-tab-span" style="white-space:pre">        </span>Service_d.exe!Service::images(web::http::http_request message) Line 501<span class="Apple-tab-span" style="white-space:pre">     </span>C++</div></div><div><br></div><div>Does anyone have any hints as to why this would happen? Would replacing fflush(NULL) with fflush(_stream) help at that specific location?</div><div><br></div><div>Kind regards,</div><div>Christian Mol</div></div>