From: Yoann Audouin Date: Thu, 12 Jan 2023 06:59:46 +0000 (+0100) Subject: Moving variables into parallel meshw X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=1df51f2b077cb4b3dfb04ea0df03b72109b27f2b;p=modules%2Fsmesh.git Moving variables into parallel meshw --- diff --git a/src/SMESH/SMESH_Gen.cxx b/src/SMESH/SMESH_Gen.cxx index 48be3b2d7..04514d676 100644 --- a/src/SMESH/SMESH_Gen.cxx +++ b/src/SMESH/SMESH_Gen.cxx @@ -360,7 +360,7 @@ bool SMESH_Gen::parallelComputeSubMeshes( } if(file_name != "") { - fs::path mesh_file = fs::path(aMesh.tmp_folder) / fs::path(file_name); + fs::path mesh_file = fs::path(aMesh.GetTmpFolder()) / fs::path(file_name); SMESH_DriverMesh::exportMesh(mesh_file.string(), aMesh, "MESH"); } //Resetting threaded pool info @@ -375,7 +375,7 @@ bool SMESH_Gen::parallelComputeSubMeshes( smToCompute->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE ); continue; } - boost::asio::post(*(aMesh._pool), std::bind(compute_function, smToCompute, computeEvent, + boost::asio::post(*(aMesh.GetPool()), std::bind(compute_function, smToCompute, computeEvent, shapeSM, aShapeOnly, allowedSubShapes, aShapesId)); } diff --git a/src/SMESH/SMESH_Mesh.hxx b/src/SMESH/SMESH_Mesh.hxx index 50f6210a1..85204536f 100644 --- a/src/SMESH/SMESH_Mesh.hxx +++ b/src/SMESH/SMESH_Mesh.hxx @@ -404,6 +404,9 @@ class SMESH_EXPORT SMESH_Mesh virtual bool IsParallel(){std::cout << "Should not pass here" << std::endl;return false;}; + virtual boost::filesystem::path GetTmpFolder() {return "";}; + virtual boost::asio::thread_pool* GetPool() {return NULL;}; + virtual bool ComputeSubMeshes( SMESH_Gen* gen, SMESH_Mesh & aMesh, @@ -416,9 +419,6 @@ class SMESH_EXPORT SMESH_Mesh const bool complexShapeFirst, const bool aShapeOnly){(void) gen;(void) aMesh;(void) aShape;(void) aDim;(void) aShapesId;(void) allowedSubShapes;(void) computeEvent;(void) includeSelf;(void) complexShapeFirst;(void) aShapeOnly;std::cout << "Should not pass here" << std::endl;return false;}; - // TODO: Remove from SMESH_Mesh - boost::filesystem::path tmp_folder; - boost::asio::thread_pool * _pool = nullptr; //thread pool for computation private: void exportMEDCommmon(DriverMED_W_SMESHDS_Mesh& myWriter, diff --git a/src/SMESH/SMESH_ParallelMesh.hxx b/src/SMESH/SMESH_ParallelMesh.hxx index bb56599cb..8b5db8335 100644 --- a/src/SMESH/SMESH_ParallelMesh.hxx +++ b/src/SMESH/SMESH_ParallelMesh.hxx @@ -58,6 +58,9 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh void CreateTmpFolder(); void DeleteTmpFolder(); + boost::filesystem::path GetTmpFolder() override {return tmp_folder;}; + boost::asio::thread_pool* GetPool() override {return _pool;}; + bool ComputeSubMeshes( SMESH_Gen* gen, SMESH_Mesh & aMesh, @@ -69,5 +72,9 @@ class SMESH_EXPORT SMESH_ParallelMesh: public SMESH_Mesh const bool includeSelf, const bool complexShapeFirst, const bool aShapeOnly) override; + + private: + boost::filesystem::path tmp_folder; + boost::asio::thread_pool * _pool = nullptr; //thread pool for computation }; #endif