my $is_refreshing = 0; $autorefresh_id = $root->repeat($rinterval*60000,\&refresh_func); sub refresh_func { return if $is_refreshing; $is_refreshing = 1; ... #long running routine ... $is_refreshing = 0; }