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?

questionAnswers(1)

yourAnswerToTheQuestion