1#!/bin/sh 2# -*- tcl -*- \ 3exec tclsh "$0" ${1+"$@"} 4 5package require comm 6package require tie 7 8set id [lindex $argv 0] 9 10proc import {remotevar localvar} { 11 global id 12 comm::comm send $id [list \ 13 tie::tie $remotevar remotearray \ 14 $localvar {comm::comm send} [comm::comm self] \ 15 ] 16} 17 18proc Track {args} { 19 global receiver 20 puts *\ \[[join $args "\] \["]\]\ ([dictsort [array get receiver]]) 21 return 22} 23 24proc dictsort {dict} { 25 array set a $dict 26 set out [list] 27 foreach key [lsort [array names a]] { 28 lappend out $key $a($key) 29 } 30 return $out 31} 32 33array set receiver {} 34trace add variable receiver {write unset} Track 35 36import server receiver 37 38puts "Waiting on $id" 39vwait forever 40