In [Tcl]-land, we often discourage use of [threads], for reasons documented elsewhere [[explain]]. Here's an example of how to think about design involving threads: Briefly, Tcl applications need threads when they rely on long-running external resources, like database look-up or communications with physical devices [[references]]. Even in the latter case, though, there are a number of alternatives: * [[explain [bgexec] ]] * [[more generally, rely on process interface]] * [[ [fconfigure]-ation of [serial port] communications]] [[note recent [USB] corrections]] [[Use of [dqkit] as a great convenience.]]