diff --git a/libsrc/meshing/python_mesh.cpp b/libsrc/meshing/python_mesh.cpp index 3a652e02..52680229 100644 --- a/libsrc/meshing/python_mesh.cpp +++ b/libsrc/meshing/python_mesh.cpp @@ -1234,15 +1234,12 @@ DLL_HEADER void ExportNetgenMeshing(py::module &m) { MeshingParameters mp; if(pars) mp = *pars; - { - py::gil_scoped_acquire acquire; - CreateMPfromKwargs(mp, kwargs); - } + CreateMPfromKwargs(mp, kwargs); + py::gil_scoped_release gil_release; MeshVolume (mp, self); OptimizeVolume (mp, self); }, py::arg("mp")=nullptr, - meshingparameter_description.c_str(), - py::call_guard()) + meshingparameter_description.c_str()) .def ("OptimizeVolumeMesh", [](Mesh & self, MeshingParameters* pars) { diff --git a/libsrc/stlgeom/python_stl.cpp b/libsrc/stlgeom/python_stl.cpp index ad82be56..f25d347c 100644 --- a/libsrc/stlgeom/python_stl.cpp +++ b/libsrc/stlgeom/python_stl.cpp @@ -188,17 +188,16 @@ NGCORE_API_EXPORT void ExportSTL(py::module & m) { MeshingParameters mp; STLParameters stlparam; - { py::gil_scoped_acquire aq; - if(pars) - { - auto mp_flags = pars->geometrySpecificParameters; - auto mp_kwargs = CreateDictFromFlags(mp_flags); - CreateSTLParametersFromKwargs(stlparam, mp_kwargs); - mp = *pars; - } - CreateSTLParametersFromKwargs(stlparam, kwargs); - CreateMPfromKwargs(mp, kwargs); // this will throw if any kwargs are not passed + if(pars) + { + auto mp_flags = pars->geometrySpecificParameters; + auto mp_kwargs = CreateDictFromFlags(mp_flags); + CreateSTLParametersFromKwargs(stlparam, mp_kwargs); + mp = *pars; } + CreateSTLParametersFromKwargs(stlparam, kwargs); + CreateMPfromKwargs(mp, kwargs); // this will throw if any kwargs are not passed + py::gil_scoped_release gil_release; if(!mesh) { mesh = make_shared(); @@ -215,7 +214,6 @@ NGCORE_API_EXPORT void ExportSTL(py::module & m) return mesh; }, py::arg("mp") = nullptr, py::arg("mesh") = nullptr, - py::call_guard(), (meshingparameter_description + stlparameter_description).c_str()) .def("Draw", FunctionPointer ([] (shared_ptr self)