Schrift
[thread]8274[/thread]

parallele filehandles (Seite 3)



<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
montii
 2006-08-29 10:20
#69295 #69295
User since
2006-08-28
13 Artikel
BenutzerIn
[default_avatar]
[quote=renee,29.Aug..2006, 08:00]Das kann man aber auch mit forks realisieren. Beispiel habe ich zur Zeit keine...[/quote]
bestimmt, aber löst das das problem?
ich muss nach wie vor open() verwenden .. habe es auch schon mit diversen locks an verschiedenen stellen probiert, aber hilft alles nichts. Dann habe ich versucht für jeden thread einen einzigartigen filehandle zu verwenden.. das sollte geklappt haben (debuggen in threads habe ich bisher nicht geschafft - eclipse: not responding) - bringt auch nichts.
esskar
 2006-08-29 10:35
#69296 #69296
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
check es mal
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
25
26
27
28
#!/usr/bin/perl -w

$| ||= 1;

use strict;

my $MaxProcessCount = 5;

for (1 .. $MaxProcessCount) {
my $pid = fork;

die "Unable to fork!" unless defined $pid;

if($pid == 0) {
SubFunction('localhost');
exit 0;
}
}

sub SubFunction {
my ($host) = @_;
print "- process: $$\n";

my $fh;
open($fh, '-|', "ping.exe $host") or die "couldn't open pipe!";
print while (<$fh>);
close($fh);
}
montii
 2006-08-29 12:29
#69297 #69297
User since
2006-08-28
13 Artikel
BenutzerIn
[default_avatar]
[quote=esskar,29.Aug..2006, 08:35]check es mal[/quote]
wie gehabt.. code tut im prinzip - aber halt eben nur mit einem thread/child. Sobald ich den wert erhöhe hängt das programm :-(

Gibt es keine alternative Möglichkeit ein externes programm zu öffnen und dessen ausgabe einzulesen als mit open()? :-/ entweder ist open() nicht threadsafe und selbst schuld oder (sehr viel wahrscheinlicher) ich - dann gibt es eine lösung und ich kenne sie nicht :-/
vayu
 2006-08-29 12:36
#69298 #69298
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
my @output = qx(ping -c 3 $hostname);

print foreach(@file);
\n\n

<!--EDIT|vayu|1156840742-->
montii
 2006-08-29 13:13
#69299 #69299
User since
2006-08-28
13 Artikel
BenutzerIn
[default_avatar]
mit qx() dasselbe problem :-)

ein anderes problem das ich jetzt dem fork code habe: ich kann die SubFunction nur 1x aufrufen - nicht mehrmals mit verschiedenen Parameters. Das sollte jetzt aber nicht so das problem sein.. ich könnte hostnames ja z.B. in einen global @array schreiben und innerhalb der SubFunktion immer das verwendete element löschen..

solangsam gebe ich auf mit dem problem und nehme es als gegeben hin :-)
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2006-08-28 12:57.