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