Thread Konsolenanwendung starten und Ausgabe auslesen
(4 answers)
Opened by TheMic at 2011-07-06 11:04
Ok, ich habe jetzt noch ein Problem. Da sich das Programm, dass ich aufrufe bei einigen Parametern anscheinend aufhängt, musste ich eine Timeout-Funktion einbauen.
Dies sieht jetzt so aus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $pid = fork(); $timeout = 3; if($pid) { local $SIG{ALRM} = sub { die "TIMEOUT" }; alarm $timeout; eval { waitpid( $pid, 0 ); }; alarm 0; if ( $@ && $@ =~ m/TIMEOUT/ ) { $output = ""; } } else { $output = qx("Encoder.exe -i test -o _test -t4 $t4 2>&1"); exit(0); } Ich habe jetzt aber festgestellt, dass bei Durchläufen des Codes Threads erstellt werden, die nach dem Durchlauf nicht geschlossen werden. Könnte dies an der Funktion qx liegen? Wenn ja, wie kann ich das umgehen? |