while (Tk::MainWindow->Count) { if (my $queue_message=$main::worker_to_boss_queue->dequeue_nb) { my ($message,$no)=@$queue_message; given ($message) { when ("allfiles") { $gui::percent_done=0; $gui::_progress->configure(-to => $no); } when ("update") { $gui::percent_done += 1; } when ("end") { $gui::percent_done += 1; enable_buttons(); } } } DoOneEvent(ALL_EVENTS); } }