in reply to Re^3: Second background process is pausing the gui
in thread Second background process is pausing the gui

Thanks for the replies, the open is working properly on the background. I'm able to keep working while the $cmd is running.

The $reg_out is output to a text gadget. If you think the open cmd is the issue, how should I fix it? I want to run a CMD on the background, grep the output to be paste on a text gadget on the main process gui

This is the code of the fileevent, I'm closing the descriptor once the program is done

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'); }

Replies are listed 'Best First'.
Re^5: Second background process is pausing the gui
by bliako (Abbot) on Jun 11, 2020 at 11:13 UTC

    and what's AddReRun()?

    If you produce a minimal script to reproduce your problem without all the complexities of your current script (see Short, Self-Contained, Correct Example) AND indicating which variables are global (actually avoiding any will be easier), someone may be able to help you more than my general advice. As it is, I will not write a Tk script from scratch just to be able to help you - others may.

    bw, bliako

        Hi, I'm using perl/Tk. I've created a background process to run a cmd and I want the main process to continue working. This is fine and works, until I invoke an additional background process. Than the GUI is stuck until the first process is done. 

        anyway, your 1st link does not work