Я пытаюсь запустить поток непрерывно и не блокировать его основным циклом событий tcl. Вот простой пример того, что я пытаюсь сделать:
#!/bin/sh
#\
exec tclsh "$0" "$@"
package require Thread
set ::a_thread [thread::create {thread::wait}]
proc start_a {} {
thread::send $::a_thread {
puts "Running a thread"
}
after 1000 a_start
}
proc infinite_loop {} {
while {1} {
puts "Loop"
after 500
}
}
start_a
infinite_loop
vwait forever
В этом коде вызывается процедура infinite_loop
, и основной цикл событий выполняется бесконечно. Я бы хотел, чтобы a_thread
все еще мог работать в фоновом режиме. Как я могу этого добиться?