Posted to tcl by pooryorick at Tue May 24 18:22:09 GMT 2016view pretty
package require {ycl coro relay} namespace import [yclprefix]::coro::relay dict set tasks [relay call 0 cl::Buffer copy $a] 1 dict set tasks [relay call 0 cl::Buffer copy $b] 2 for {set i 0} {$i < 2} {incr i} { set device_buf [relay receive] catch {relay receive} result options set t [dict get tasks [dict get $options -id]] kernel_$t bind $device_buf dict set tasks2 [relay call kernel_$t execute] $t } for {set i 0} {$i < 2} {incr i} { catch {relay receive} result options set result_[dict get $tasks2 [dict get $options -id]] $result } do something with $result_1 $result_2