http://qs321.pair.com?node_id=11117929


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

This node falls below the community's threshold of quality. You may see it by logging in.
  • Comment on Re^3: Second background process is pausing the gui

Replies are listed 'Best First'.
Re^4: Second background process is pausing the gui
by Ohad (Novice) on Jun 11, 2020 at 06:16 UTC

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

      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

Re^4: Second background process is pausing the gui
by Anonymous Monk on Jun 11, 2020 at 16:28 UTC
    I can't authoritatively speak to that

    History shows that you can never speak authoritatively to anything. Your "contribution" is never helpful, and is frequently harmful (in that it can lead unsuspecting newbies down the wrong path). It would be best for everyone if you'd just... stop. Please.