Thread unabhängige Schleife mit fork
(8 answers)
Opened by romulus at 2004-05-19 14:20
So etwas kann passieren. Bei einem fork werden Sachen wie filehandles dupliziert, und END { ... }-Bloecke und DESTROY-Methoden werden auch im geforkten Prozess ausgefuehrt. Einige Probleme kann man umgehen, indem man statt exit() CORE::exit() verwendet (ueblicherweise bei Verwendung von Tk oder anderen Modulen, die exit() ueberschreiben) oder sogar POSIX::_exit (damit kann man vermeiden, dass END-Blocke ausgefuehrt werden). Einige Module haben Hilfsmittel, um das automatische Destroy in einem der beiden Prozesse zu vermeiden (z.B. DBI mit InactiveDestroy).
Vielleicht hat Term::Screen auch Probleme, wenn geforkt wird. Eine Loesung koennte sein, so frueh wie moeglich zu forken (bevor Term::Screen verwendet wird). Oder beim Autor von Term::Screen um Rat fragen --- vielleicht hilft es, wenn einige Filehandles im Kindprozess geschlossen werden. |