Thread Konsolenanwendung starten und Ausgabe auslesen (4 answers)
Opened by TheMic at 2011-07-06 11:04

TheMic
 2011-07-06 21:21
#150201 #150201
User since
2009-12-29
15 Artikel
BenutzerIn
[default_avatar]
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?

View full thread Konsolenanwendung starten und Ausgabe auslesen