[omniORB] How to use omniORB in forked process?

Gerd Schmitt extern.schmitt at kmweg.de
Tue Jun 7 17:51:14 BST 2005


Achim,

are you doing an exec() immediatly after forking? I assume you
should do this. In our application I do a system() (which is
basically the same as fork() + exec()) without any problems.

However, if you don't want to exec() you might try to exit
your child via _exit(). This avoids any static deinitialisation.
The tradeoff is that this cuts off any leakage checker or profiler.
And you probably should close all open file descriptors greater than 2.
Well, by writing this I really think you should do it the exec()-way.

hth,
Gerd

Achim Luber wrote:
> Hi,
> perhaps my last mail was to confusing so I try to simplify my problem.
> We have a c++ programm (zzz) which works as CORBA Server. One CORBA 
> operation (xxx) of this programm creates while its execution a new 
> process (yyy) by fork(). The operation xxx endet and returns to client 
> while the new process is still working (zzz also still running). When 
> the process yyy ends, the ERROR message :
>    terminate called after throwing an instance of 'omni_thread_fatal'
> is printed.
> 
> Thanks for reading and (hopefully) helping
> 
> Grettings
> Achim
> 
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
> 




More information about the omniORB-list mailing list