Thread Problem mit fork() unter Windows (13 answers)
Opened by sancho at 2005-10-16 14:24

sancho
 2005-10-16 14:24
#58881 #58881
User since
2005-10-16
1 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen!

Ich möchte testweise einen Proxy-Server basteln, ich verwende ActivePerl 5.6.1 unter Windows XP mit SP2. Leider gibt es Probleme sobald ich das Skript mit fork() um parallele Prozesse erweitere. Es gibt beim Starten und bei der Ausführung zwar keine Fehler, aber das Programm arbeitet auch nicht wie erwartet, d.h. es passiert sozusagen "gar nichts", und Anfragen von Clients werden nicht bearbeitet. Hat da vielleicht jemand eine heissen Tip für mich? Ich bin fuer jede noch so kleine Hilfe dankbar!

Das ist der Source, ohne die 3 Zeilen um fork() geht alles...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use strict;
my $PORT = 8080;

use HTTP::Daemon;
use LWP::UserAgent;

$SIG{PIPE} = 'IGNORE';
$SIG{CHLD} = sub { wait(); };

my $srv = HTTP::Daemon->new(LocalPort => $PORT, Reuse     => 1);
die "can't start server ($@)" unless defined $srv;
my $ua = LWP::UserAgent->new();
$ua->agent("bla/1.0");

while(my $conn = $srv->accept()) {
  defined(my $pid = fork()) or die "Can't fork!";
 next if $pid;
 while (my $request = $conn->get_request) {
   my $resp = $ua->simple_request($request);
   $conn->send_response($resp);
 }
 $conn->close;
 exit(0);
}


Gruß,
Sancho

edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1129463263-->

View full thread Problem mit fork() unter Windows