linux-l: fork() problem mit omniorb

Stefan Bund sbund at artec-berlin.com
Mo Nov 27 09:45:09 CET 2000


Jan-Benedict Glaw <jbglaw at lug-owl.de> writes:
> SIGRT_0? Schwarmt imr da was mit Threads? CORBA benutz die doch, oder?

Jep.

> ...und dann darf man doch nicht mehr fork()en, sondern nur noch 
> reitere threads erstellen... (Oder so in der Art;)
> 
> Empfehle ISBN 0-201-63392-2:
> 
> p. 197: "Avoid using fork in a threaded program (if you can) unless
>         you intend to exec a new program immediately."
> 
> ...und dann folgt eine kurze Beschreibung, warum es ziemlich sicher
> zum deadlock kommen wird, wenn man nicht als einzige Aktion
> einen der exec()-Geschwister aufruft...

Grmpf ... wie schicke ich dann ein Programm, welches CORBA verwendet
in den hintergrund??? gibt's da irgendwelche thread-aufrufe, die das
beherschen? Es sollte doch möglich sein, einen CORBA-Server zu
schreiben, der sich *selbst* in den hintergrund verfrachtet ... Hmm
...

Ich habe das Problem erst mal umgangen, aber eine wirkliche Lösung
habe ich nicht.

Stefan.

PS: Sogar, wenn ich sofort einen exec() mache, klappt fork() irgendwie
nicht. (Es klappt sogar mit system() nicht). Das habe ich sowieso
nicht verstanden ... Hmm ... aber das ist der andere thread :-)



Mehr Informationen über die Mailingliste linux-l