TCL: comunicação bidirecional entre threads no Windows
Eu preciso ter uma comunicação bidirecional entre threads no Tcl e tudo que posso obter é uma maneira com os parâmetros passando como meu único canal de comunicação master-> helper. Aqui está o que eu tenho:
proc ExecProgram { command } {
if { [catch {open "| $command" RDWR} fd ] } {
#
# Failed, return error indication
#
error "$fd"
}
}
Para chamar o tclsh83, por exemplo, ExecProgram "tclsh83 testCases.tcl TestCase_01"
Dentro do arquivo testCases.tcl, posso usar as informações passadas. Por exemplo:
set myTestCase [lindex $argv 0]
Dentro do testCases.tcl eu posso colocar para o tubo:
puts "$myTestCase"
flush stdout
E receba essas inserções no encadeamento mestre usando o ID do processo:
gets $app line
... dentro de um loop.
O que não é muito bom. E não de mão dupla.
Alguém conhece um método fácil de comunicação bidirecional para tcl no Windows entre 2 threads?