Posted to tcl by aspect at Tue Apr 05 06:50:43 GMT 2016view pretty

set it [interp create]
$it eval {
    namespace eval ToUpper {
        proc initialize {x mode}  { info procs }
        proc finalize   {x}       { }
        proc write      {x data}  { string toupper $data }
        proc flush      {x}       { }
        namespace export *
        namespace ensemble create
    }
    chan push stdout ToUpper
    puts "hello from interp"        ;# HELLO FROM INTERP    - as expected
}

puts "hello from main"              ;# HELLO FROM MAIN      - hmm .. insufficiently documented?

interp cancel $it

puts "hello at end"                 ;# eval canceled while executing "ToUpper write rt0 {hello at end\n}"

        ;# missing [chan pop] - or other bugs in slave interps' transchans - can affect master interp :-(