Thanks for the answers.
I want to keep it as simple as possible, also I would prefer it to have "real-time" update, not waiting for a buffer to fill up.
This is my fileevent function:
sub fill_text_widget {
my $block = shift;
my $numb = shift;
my $widget = $Reg_r{$block}{$numb}{'Txt'};
my $out_rep = $Reg_r{$block}{$numb}{'OutP'};
if (eof($out_rep))
{
$widget->fileevent($out_rep,"readable", undef);
close $Reg_r{$block}{$numb}{'OutP'};
print "Got EOF\n" if ($DBG);
$Reg_r{$block}{$numb}{'IsRun'} =0;
&AddReRun($block, $numb);
return;
}
$_ = <$out_rep>;
$widget->insert('end', $_);
$widget->yview('end');
}
The annoying part, is that the gui keeps working fine after launching the open as if in real background, the gui is completely functional. Only when I invoke an additional process, let's say an xterm, the gui suddenly gets blocked, although both jobs are running. The gui will be free only when the initial open is done
regrading the option to use FCNTL, can you elaborate on it? I tried using it, didnt made a difference, but I think I didn't do it properly. Can I keep using fileevent or do I have to move to read?