Posted to #tcl by Whiskey at Thu Mar 21 13:02:41 GMT 2013view pretty
# Set packages package require Thread # Set MasterID set mid [thread::id] # Set shared variables tsv::set thread mid $mid # Create ThreadID set tid [thread::create { # Set packages package require struct::queue # Create thread proc proc Start-Thread {one two three} { # Set variables set mid "[tsv::set thread mid]" set tid "[tsv::set thread tid]" # Send massage thread::send $mid [list puts "I was here"] # Exit thread thread::release $tid } # Create queue proc proc isQueue {one two three} { # Create queue set queue [struct::queue] # Put jobs in queue $queue put [list Start-Thread "$one" "$two" "$three"] # Check for jobs in queue while {[$queue size]} { eval [$queue get] } # Remove queue $queue destroy } }] thread::send -async $tid [list isQueue "1" "2" "3"] update