Temporarily disable multiple threads for VTK, then resume them later.

Code example:

    // flags for recover multi threads later
    std::string m_OriginalBackend;
    bool m_OriginalEnableSMP;
    int m_OriginalNumOfThreadsInMultiThreader;


    // make it to be Sequential
    m_OriginalBackend = vtkSMPTools::GetBackend();
    vtkSMPTools::SetBackend( "Sequential" );
    m_OriginalEnableSMP = vtkThreadedImageAlgorithm::GetGlobalDefaultEnableSMP();
    vtkThreadedImageAlgorithm::SetGlobalDefaultEnableSMP( false );
    m_OriginalNumOfThreadsInMultiThreader = vtkMultiThreader::GetGlobalMaximumNumberOfThreads();
    vtkMultiThreader::SetGlobalMaximumNumberOfThreads(1);
    LOG( INFO, "m_OriginalBackend: ", m_OriginalBackend, ", m_OriginalEnableSMP: ", m_OriginalEnableSMP, ", m_OriginalNumOfThreadsInMultiThreader: ", m_OriginalNumOfThreadsInMultiThreader );


    // recover multi threads
    vtkSMPTools::SetBackend( m_OriginalBackend.c_str() );
    vtkThreadedImageAlgorithm::SetGlobalDefaultEnableSMP( m_OriginalEnableSMP );
    vtkMultiThreader::SetGlobalMaximumNumberOfThreads(m_OriginalNumOfThreadsInMultiThreader);
Categories: VTK

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Tex To PDF
: convert the Latex file which suffix is tex to a PDF file

X
0
Would love your thoughts, please comment.x
()
x