occt: master 7e785937

Author Committer Branch Timestamp Parent
abv abv master 2020-07-10 11:19:31 master 99289bed
Affected Issues  0025748: Foundation Classes - Parallel version of progress indicator
Changeset 0025748: Parallel version of progress indicator

Progress indication mechanism is refactored to support incrementing progress within multithreaded algorithms.

The class Message_ProgressIndicator is only an interface to the user application.
It accumulates the progress provided by progress scopes.
The counter is protected by mutex for thread-safety.

The new class Message_ProgressScope replacing Message_ProgressSentry should be used to advance the progress.
The scopes are nested to each other to reflect the nested nature of operations.
The new class Message_ProgressRange should be used to pass the progress to sub-scopes.

All OCCT algorithms involving progress indication have been updated to new API.

Improvements in Draw_ProgressIndicator:
- Separate console mode has been added in order to make possible to put the progress into std::cout instead
  or in addition to the draw interpreter, instead of trigger option "-tclOutput".
- Treatment of Ctrl-Break signal has been added.
  Now any operation can be aborted by Ctrl-C or Ctrl-Break keystroke.

Added new test case 'perf fclasses progr_par' for testing of parallel work of the progress.
mod - adm/upgrade.dat Diff File
mod - dox/dev_guides/upgrade/upgrade.md Diff File
mod - samples/CSharp/OCCTProxy/OCCTProxy.cpp Diff File
mod - samples/CSharp/OCCTProxy_D3D/OCCTProxyD3D.cpp Diff File
mod - src/BinDrivers/BinDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/BinDrivers/BinDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/BinDrivers/BinDrivers_DocumentStorageDriver.cxx Diff File
mod - src/BinDrivers/BinDrivers_DocumentStorageDriver.hxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.cxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.hxx Diff File
mod - src/BinMNaming/BinMNaming_NamedShapeDriver.cxx Diff File
mod - src/BinMNaming/BinMNaming_NamedShapeDriver.hxx Diff File
mod - src/BinTools/BinTools.cxx Diff File
mod - src/BinTools/BinTools.hxx Diff File
mod - src/BinTools/BinTools_Curve2dSet.cxx Diff File
mod - src/BinTools/BinTools_Curve2dSet.hxx Diff File
mod - src/BinTools/BinTools_CurveSet.cxx Diff File
mod - src/BinTools/BinTools_CurveSet.hxx Diff File
mod - src/BinTools/BinTools_ShapeSet.cxx Diff File
mod - src/BinTools/BinTools_ShapeSet.hxx Diff File
mod - src/BinTools/BinTools_SurfaceSet.cxx Diff File
mod - src/BinTools/BinTools_SurfaceSet.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_BOP.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_3.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_CheckerSI.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_MakerVolume.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Options.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Options.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Splitter.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx Diff File
mod - src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx Diff File
mod - src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx Diff File
mod - src/BRepBuilderAPI/BRepBuilderAPI_Sewing.hxx Diff File
mod - src/BRepTest/BRepTest_SurfaceCommands.cxx Diff File
mod - src/BRepToIGES/BRepToIGES_BREntity.cxx Diff File
mod - src/BRepToIGES/BRepToIGES_BREntity.hxx Diff File
mod - src/BRepToIGES/BRepToIGES_BRShell.cxx Diff File
mod - src/BRepToIGES/BRepToIGES_BRShell.hxx Diff File
mod - src/BRepToIGES/BRepToIGES_BRSolid.cxx Diff File
mod - src/BRepToIGES/BRepToIGES_BRSolid.hxx Diff File
mod - src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx Diff File
mod - src/BRepToIGESBRep/BRepToIGESBRep_Entity.hxx Diff File
mod - src/BRepTools/BRepTools.cxx Diff File
mod - src/BRepTools/BRepTools.hxx Diff File
mod - src/BRepTools/BRepTools_Modifier.cxx Diff File
mod - src/BRepTools/BRepTools_Modifier.hxx Diff File
mod - src/BRepTools/BRepTools_ShapeSet.cxx Diff File
mod - src/BRepTools/BRepTools_ShapeSet.hxx Diff File
mod - src/CDF/CDF_Application.cxx Diff File
mod - src/CDF/CDF_Application.hxx Diff File
mod - src/CDF/CDF_Store.cxx Diff File
mod - src/CDF/CDF_Store.hxx Diff File
mod - src/CDF/CDF_StoreList.cxx Diff File
mod - src/CDF/CDF_StoreList.hxx Diff File
mod - src/CDM/CDM_Application.hxx Diff File
mod - src/DBRep/DBRep.cxx Diff File
mod - src/DDocStd/DDocStd_ApplicationCommands.cxx Diff File
mod - src/Draw/Draw.cxx Diff File
mod - src/Draw/Draw.hxx Diff File
mod - src/Draw/Draw_ProgressIndicator.cxx Diff File
mod - src/Draw/Draw_ProgressIndicator.hxx Diff File
mod - src/Draw/Draw_VariableCommands.cxx Diff File
mod - src/GeomPlate/GeomPlate_BuildPlateSurface.cxx Diff File
mod - src/GeomPlate/GeomPlate_BuildPlateSurface.hxx Diff File
mod - src/GeomTools/GeomTools_Curve2dSet.cxx Diff File
mod - src/GeomTools/GeomTools_Curve2dSet.hxx Diff File
mod - src/GeomTools/GeomTools_CurveSet.cxx Diff File
mod - src/GeomTools/GeomTools_CurveSet.hxx Diff File
mod - src/GeomTools/GeomTools_SurfaceSet.cxx Diff File
mod - src/GeomTools/GeomTools_SurfaceSet.hxx Diff File
mod - src/IGESCAFControl/IGESCAFControl_Reader.cxx Diff File
mod - src/IGESCAFControl/IGESCAFControl_Reader.hxx Diff File
mod - src/IGESCAFControl/IGESCAFControl_Writer.cxx Diff File
mod - src/IGESCAFControl/IGESCAFControl_Writer.hxx Diff File
mod - src/IGESControl/IGESControl_ActorWrite.cxx Diff File
mod - src/IGESControl/IGESControl_ActorWrite.hxx Diff File
mod - src/IGESControl/IGESControl_Controller.cxx Diff File
mod - src/IGESControl/IGESControl_Controller.hxx Diff File
mod - src/IGESControl/IGESControl_Writer.cxx Diff File
mod - src/IGESControl/IGESControl_Writer.hxx Diff File
mod - src/IGESToBRep/IGESToBRep_Actor.cxx Diff File
mod - src/IGESToBRep/IGESToBRep_Actor.hxx Diff File
mod - src/IGESToBRep/IGESToBRep_BRepEntity.cxx Diff File
mod - src/IGESToBRep/IGESToBRep_BRepEntity.hxx Diff File
mod - src/IGESToBRep/IGESToBRep_CurveAndSurface.cxx Diff File
mod - src/IGESToBRep/IGESToBRep_CurveAndSurface.hxx Diff File
mod - src/IGESToBRep/IGESToBRep_Reader.cxx Diff File
mod - src/IGESToBRep/IGESToBRep_Reader.hxx Diff File
mod - src/math/math_Gauss.cxx Diff File
mod - src/math/math_Gauss.hxx Diff File
mod - src/math/math_Recipes.cxx Diff File
mod - src/math/math_Recipes.hxx Diff File
mod - src/Message/FILES Diff File
mod - src/Message/Message_ProgressIndicator.cxx Diff File
mod - src/Message/Message_ProgressIndicator.hxx Diff File
rm - src/Message/Message_ProgressIndicator.lxx Diff File
add - src/Message/Message_ProgressRange.hxx Diff File
rm - src/Message/Message_ProgressScale.cxx Diff File
rm - src/Message/Message_ProgressScale.hxx Diff File
rm - src/Message/Message_ProgressScale.lxx Diff File
add - src/Message/Message_ProgressScope.hxx Diff File
rm - src/Message/Message_ProgressSentry.cxx Diff File
mod - src/Message/Message_ProgressSentry.hxx Diff File
rm - src/Message/Message_ProgressSentry.lxx Diff File
rm - src/Message/Message_SequenceOfProgressScale.hxx Diff File
mod - src/PCDM/PCDM_Reader.hxx Diff File
mod - src/PCDM/PCDM_StorageDriver.cxx Diff File
mod - src/PCDM/PCDM_StorageDriver.hxx Diff File
mod - src/PCDM/PCDM_Writer.hxx Diff File
mod - src/Plate/Plate_Plate.cxx Diff File
mod - src/Plate/Plate_Plate.hxx Diff File
mod - src/QABugs/QABugs_11.cxx Diff File
mod - src/RWGltf/RWGltf_CafReader.cxx Diff File
mod - src/RWGltf/RWGltf_CafReader.hxx Diff File
mod - src/RWGltf/RWGltf_CafWriter.cxx Diff File
mod - src/RWGltf/RWGltf_CafWriter.hxx Diff File
mod - src/RWGltf/RWGltf_GltfJsonParser.cxx Diff File
mod - src/RWGltf/RWGltf_GltfJsonParser.pxx Diff File
mod - src/RWMesh/RWMesh_CafReader.cxx Diff File
mod - src/RWMesh/RWMesh_CafReader.hxx Diff File
mod - src/RWObj/RWObj.cxx Diff File
mod - src/RWObj/RWObj.hxx Diff File
mod - src/RWObj/RWObj_CafReader.cxx Diff File
mod - src/RWObj/RWObj_CafReader.hxx Diff File
mod - src/RWObj/RWObj_Reader.cxx Diff File
mod - src/RWObj/RWObj_Reader.hxx Diff File
mod - src/RWStl/RWStl.cxx Diff File
mod - src/RWStl/RWStl.hxx Diff File
mod - src/RWStl/RWStl_Reader.cxx Diff File
mod - src/RWStl/RWStl_Reader.hxx Diff File
mod - src/ShapeCustom/ShapeCustom.cxx Diff File
mod - src/ShapeCustom/ShapeCustom.hxx Diff File
mod - src/ShapeFix/ShapeFix.cxx Diff File
mod - src/ShapeFix/ShapeFix.hxx Diff File
mod - src/ShapeFix/ShapeFix_Shape.cxx Diff File
mod - src/ShapeFix/ShapeFix_Shape.hxx Diff File
mod - src/ShapeFix/ShapeFix_Shell.cxx Diff File
mod - src/ShapeFix/ShapeFix_Shell.hxx Diff File
mod - src/ShapeFix/ShapeFix_Solid.cxx Diff File
mod - src/ShapeFix/ShapeFix_Solid.hxx Diff File
mod - src/ShapeProcess/ShapeProcess.cxx Diff File
mod - src/ShapeProcess/ShapeProcess.hxx Diff File
mod - src/ShapeProcess/ShapeProcess_Context.cxx Diff File
mod - src/ShapeProcess/ShapeProcess_Context.hxx Diff File
mod - src/ShapeProcess/ShapeProcess_Operator.hxx Diff File
mod - src/ShapeProcess/ShapeProcess_OperFunc.hxx Diff File
mod - src/ShapeProcess/ShapeProcess_OperLibrary.cxx Diff File
mod - src/ShapeProcess/ShapeProcess_UOperator.cxx Diff File
mod - src/ShapeProcess/ShapeProcess_UOperator.hxx Diff File
mod - src/ShapeProcessAPI/ShapeProcessAPI_ApplySequence.cxx Diff File
mod - src/ShapeProcessAPI/ShapeProcessAPI_ApplySequence.hxx Diff File
mod - src/StdLDrivers/StdLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/StdLDrivers/StdLDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Reader.cxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Reader.hxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Writer.cxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Writer.hxx Diff File
mod - src/STEPControl/STEPControl_ActorRead.cxx Diff File
mod - src/STEPControl/STEPControl_ActorRead.hxx Diff File
mod - src/STEPControl/STEPControl_ActorWrite.cxx Diff File
mod - src/STEPControl/STEPControl_ActorWrite.hxx Diff File
mod - src/STEPControl/STEPControl_Controller.cxx Diff File
mod - src/STEPControl/STEPControl_Controller.hxx Diff File
mod - src/STEPControl/STEPControl_Reader.cxx Diff File
mod - src/STEPControl/STEPControl_Reader.hxx Diff File
mod - src/STEPControl/STEPControl_Writer.cxx Diff File
mod - src/STEPControl/STEPControl_Writer.hxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_Builder.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_Builder.hxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_MakeTransformed.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_MakeTransformed.hxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_TranslateShell.cxx Diff File
mod - src/StepToTopoDS/StepToTopoDS_TranslateShell.hxx Diff File
mod - src/StlAPI/StlAPI_Writer.cxx Diff File
mod - src/StlAPI/StlAPI_Writer.hxx Diff File
mod - src/SWDRAW/SWDRAW_ShapeFix.cxx Diff File
mod - src/SWDRAW/SWDRAW_ShapeUpgrade.cxx Diff File
mod - src/TDocStd/TDocStd_Application.cxx Diff File
mod - src/TDocStd/TDocStd_Application.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_Builder.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_Builder.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeBrepWithVoids.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeBrepWithVoids.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrep.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrep.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrepAndBrepWithVoids.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeFacetedBrepAndBrepWithVoids.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeManifoldSolidBrep.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeManifoldSolidBrep.hxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeShellBasedSurfaceModel.cxx Diff File
mod - src/TopoDSToStep/TopoDSToStep_MakeShellBasedSurfaceModel.hxx Diff File
mod - src/TopTools/TopTools_LocationSet.cxx Diff File
mod - src/TopTools/TopTools_LocationSet.hxx Diff File
mod - src/TopTools/TopTools_ShapeSet.cxx Diff File
mod - src/TopTools/TopTools_ShapeSet.hxx Diff File
mod - src/Transfer/Transfer_Actor.gxx Diff File
mod - src/Transfer/Transfer_ActorDispatch.cxx Diff File
mod - src/Transfer/Transfer_ActorDispatch.hxx Diff File
mod - src/Transfer/Transfer_ActorOfFinderProcess.cxx Diff File
mod - src/Transfer/Transfer_ActorOfFinderProcess.hxx Diff File
mod - src/Transfer/Transfer_ActorOfProcessForFinder.hxx Diff File
mod - src/Transfer/Transfer_ActorOfProcessForTransient.hxx Diff File
mod - src/Transfer/Transfer_ActorOfTransientProcess.cxx Diff File
mod - src/Transfer/Transfer_ActorOfTransientProcess.hxx Diff File
mod - src/Transfer/Transfer_ProcessForFinder.hxx Diff File
mod - src/Transfer/Transfer_ProcessForFinder_0.cxx Diff File
mod - src/Transfer/Transfer_ProcessForTransient.hxx Diff File
mod - src/Transfer/Transfer_ProcessForTransient_0.cxx Diff File
mod - src/Transfer/Transfer_TransferOutput.cxx Diff File
mod - src/Transfer/Transfer_TransferOutput.hxx Diff File
mod - src/Transfer/Transfer_TransferProcess.gxx Diff File
mod - src/TransferBRep/TransferBRep_Reader.cxx Diff File
mod - src/TransferBRep/TransferBRep_Reader.hxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_NotesTool.hxx Diff File
mod - src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/XmlDrivers/XmlDrivers_DocumentStorageDriver.cxx Diff File
mod - src/XmlDrivers/XmlDrivers_DocumentStorageDriver.hxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.hxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.cxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.hxx Diff File
mod - src/XmlMDF/XmlMDF.cxx Diff File
mod - src/XmlMDF/XmlMDF.hxx Diff File
mod - src/XmlMNaming/XmlMNaming_NamedShapeDriver.cxx Diff File
mod - src/XmlMNaming/XmlMNaming_NamedShapeDriver.hxx Diff File
mod - src/XSAlgo/XSAlgo_AlgoContainer.cxx Diff File
mod - src/XSAlgo/XSAlgo_AlgoContainer.hxx Diff File
mod - src/XSControl/XSControl_Controller.cxx Diff File
mod - src/XSControl/XSControl_Controller.hxx Diff File
mod - src/XSControl/XSControl_Reader.cxx Diff File
mod - src/XSControl/XSControl_Reader.hxx Diff File
mod - src/XSControl/XSControl_TransferReader.cxx Diff File
mod - src/XSControl/XSControl_TransferReader.hxx Diff File
mod - src/XSControl/XSControl_TransferWriter.cxx Diff File
mod - src/XSControl/XSControl_TransferWriter.hxx Diff File
mod - src/XSControl/XSControl_WorkSession.cxx Diff File
mod - src/XSControl/XSControl_WorkSession.hxx Diff File
mod - src/XSControl/XSControl_Writer.cxx Diff File
mod - src/XSControl/XSControl_Writer.hxx Diff File
mod - src/XSDRAWIGES/XSDRAWIGES.cxx Diff File
mod - src/XSDRAWSTEP/XSDRAWSTEP.cxx Diff File
mod - src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx Diff File
mod - tests/bugs/fclasses/bug28478 Diff File
mod - tests/bugs/fclasses/bug31092 Diff File
mod - tests/bugs/modalg_5/bug22747 Diff File
mod - tests/bugs/moddata_2/bug22572 Diff File
mod - tests/bugs/moddata_2/bug22746_1 Diff File
mod - tests/bugs/moddata_2/bug22746_2 Diff File
mod - tests/bugs/moddata_2/bug22746_3 Diff File
mod - tests/caf/progress/A1 Diff File
mod - tests/caf/progress/A2 Diff File
mod - tests/caf/progress/B1 Diff File
mod - tests/caf/progress/B2 Diff File
mod - tests/caf/progress/C1 Diff File
mod - tests/caf/progress/C2 Diff File
mod - tests/de_mesh/shape_write_stl/B1 Diff File
add - tests/perf/fclasses/progr_par Diff File