# testgrid demo draw -overwrite catch {cpulimit 10} package require Thread set NBTHREADS 1 set NBWORKERS 1 puts "Creating worker" set worker [tpool::create -minworkers $NBWORKERS -maxworkers $NBWORKERS] puts "Suspending worker" tpool::suspend $worker puts "Arranging jobs" for {set i 1} {$i <= $NBTHREADS} {incr i} { set job [tpool::post $worker "puts Executing_job_$i"] puts "Job $i: $job" # set job [tpool::post -nowait $worker "puts $i"] set jobs($job) $job } puts "Resuming worker" tpool::resume $worker puts "Waiting while all threads complete" after 1000 puts "Obtaining results" while { [llength [array names jobs]] > 0 } { puts "Queue: [array names jobs]" foreach job [tpool::wait $worker [array names jobs]] { puts -nonewline "Completed $job: " puts "[tpool::get $worker $job]" unset jobs($job) } } puts "Releasing worker" tpool::release $worker catch {cpulimit 0} puts "TEST COMPLETED"