Thread sysread() und Sun-Solaris: Scheinen sich zu hassen
(5 answers)
Opened by dcraul at 2006-02-07 12:49
fcntl hat zwar ein wenig geholfen aber dann kamen gar keine Daten mehr????
Ich habe mir aber mittlerweile wie folgt geholfen, sicherlich nicht sonderlich elegant, funktioniert aber sogar mit Netzwerk-Sockets über die ich eigentlich an das Problem gekommen bin. anstatt: my $n = sysread($self, $_[0], 2048, length($_[0])); folgendes: my ($x,$n); my $lent=1; while($lent<=2048) { eval { local $SIG{ALRM} = sub{die "alarm\n"}; alarm(1); $n = sysread($self,$x,1); alarm(0); $_[0] = "$_[0]"."$x"; $lent++; }; if($@) { last; } } $n=$lent; |