-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
myCommand += _containerName + "','";
myCommand += sior;
myCommand += "')\n";
- Py_ACQUIRE_NEW_THREAD;
- PyRun_SimpleString("import SALOME_Container\n");
- PyRun_SimpleString((char*)myCommand.c_str());
- Py_RELEASE_NEW_THREAD;
+ {
+ AutoGIL agil;
+ PyRun_SimpleString("import SALOME_Container\n");
+ PyRun_SimpleString((char*)myCommand.c_str());
+ }
}
Container_proxy_impl_final:: ~Container_proxy_impl_final() {
if (_NS)
delete _NS;
- // _fab_thread not deleted beacause fab_thread is managed
+ // _fab_thread not deleted because fab_thread is managed
// by paco_fabrique_manager
}
#endif
MESSAGE("Try to import Python component "<<componentName);
- Py_ACQUIRE_NEW_THREAD;
- PyObject *mainmod = PyImport_AddModule("__main__");
- PyObject *globals = PyModule_GetDict(mainmod);
- PyObject *pyCont = PyDict_GetItemString(globals, "pyCont");
- PyObject *result = PyObject_CallMethod(pyCont,
- (char*)"import_component",
- (char*)"s",componentName);
- std::string ret_p= PyUnicode_AsUTF8(result);
- Py_XDECREF(result);
- Py_RELEASE_NEW_THREAD;
+ {
+ AutoGIL agil;
+ PyObject *mainmod = PyImport_AddModule("__main__");
+ PyObject *globals = PyModule_GetDict(mainmod);
+ PyObject *pyCont = PyDict_GetItemString(globals, "pyCont");
+ PyObject *result = PyObject_CallMethod(pyCont,
+ (char*)"import_component",
+ (char*)"s",componentName);
+ std::string ret_p= PyUnicode_AsUTF8(result);
+ Py_XDECREF(result);
+ }
if (ret_p=="") // import possible: Python component
{
}
Engines::EngineComponent_ptr
-Container_proxy_impl_final::create_component_instance(const char* componentName, ::CORBA::Long studyId)
+Container_proxy_impl_final::create_component_instance(const char* componentName)
{
Engines::FieldsDict_var env = new Engines::FieldsDict;
char* reason;
- Engines::EngineComponent_ptr compo = create_component_instance_env(componentName, studyId, env, reason);
+ Engines::EngineComponent_ptr compo = create_component_instance_env(componentName, env, reason);
CORBA::string_free(reason);
return compo;
}
// Composant parallèle -> création du proxy ici puis appel de la création de chaque objet participant
// au composant parallèle
Engines::EngineComponent_ptr
-Container_proxy_impl_final::create_component_instance_env(const char* componentName, ::CORBA::Long studyId,
+Container_proxy_impl_final::create_component_instance_env(const char* componentName,
const Engines::FieldsDict& env, CORBA::String_out reason)
{
reason=CORBA::string_dup("");
_numInstance++;
_numInstanceMutex.unlock();
Engines::PACO_Container_proxy_impl::updateInstanceNumber();
- return Engines::Container_proxy_impl::create_component_instance(componentName, studyId);
+ return Engines::Container_proxy_impl::create_component_instance(componentName);
}
// Parallel Component !
string instanceName = aCompName + "_inst_" + aNumI ;
string component_registerName = _containerName + "/" + instanceName;
- // --- Instanciate required CORBA object
+ // --- Instantiate required CORBA object
Container_proxy_impl_final::proxy_object * proxy = new Container_proxy_impl_final::proxy_object();
proxy->proxy_id = (component_proxy_factory) (_orb,
instanceName.c_str(),
_parallel_object_topology.total);
- // --- get reference & servant from id
+ // --- get reference from id
CORBA::Object_var obj = _poa->id_to_reference(*(proxy->proxy_id));
component_proxy = Engines::EngineComponent::_narrow(obj);
proxy->proxy_corba_ref = component_proxy;
}
catch (...)
{
- INFOS( "Exception catched in Proxy creation" );
+ INFOS( "Exception caught in Proxy creation" );
return Engines::EngineComponent::_nil();
}
{
try
{
- node->create_paco_component_node_instance(componentName, _containerName.c_str(), studyId);
+ node->create_paco_component_node_instance(componentName, _containerName.c_str());
MESSAGE("Call create_paco_component_node_instance done on node : " << i);
}
catch (SALOME::SALOME_Exception & ex)