Thread sysread() und Sun-Solaris: Scheinen sich zu hassen (5 answers)
Opened by dcraul at 2006-02-07 12:49

dcraul
 2006-02-07 15:21
#62642 #62642
User since
2006-01-27
11 Artikel
BenutzerIn
[default_avatar]
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;

View full thread sysread() und Sun-Solaris: Scheinen sich zu hassen