[omniORB] omni_thread_fatal when process for embedded python script
ended
Achim Luber
achim.luber at 4soft.de
Fri Jun 3 18:28:03 BST 2005
Hi,
we have a c++ linux programm xxx which uses omniorb (xxx is a CORBA
server and also a client). One function of xxx is to start python
scripts. This starting operation (which is done in an own process yyy
wich is created by fork()) looks like this:
// Initialize embedded python interpreter
Py_Initialize();
// Parameters given to python as programm arguments
PySys_SetArgv(argc, argv);
// Execute python script
long long pyRC = PyRun_SimpleString( strScript.c_str() );
// Shutting down python interpreter
Py_Finalize();
The started python scripts are also CORBA clients and initialize their
own omniorb by ORB_init.
Everything works fine but after python script ended, the process yyy
ended and thereby an errormessage:
terminate called after throwing an instance of 'omni_thread_fatal'
is printed.
This seems to be no problem???!!! All later calls to xxx (still the same
process), which starts python scripts in an own process works as well as
the first one, but ended also with the above described error message.
In order to avoid the error message we tried to shutdown() and destroy()
the orb in process yyy before process yyy ended. This calls avoid the
error message but no further scripts could be started, because the call
of ORB_init in python scripts then results to a none object and no CORBA
could be used...
Does anyone know how to avoid this errormessage? Or should we ignore it?
Thanks for any suggestion.
Bye
Achim
More information about the omniORB-list
mailing list