You can also *almost* do it with a tracehook that blocks until released by another thread. See http://projects.amor.org/misc/wiki/PyConquer for the tool I'm sporadically working on that does that (in an effort to test all possible execution paths). The only limitation is that trace functions aren't called on every bytecode.
Robert Brewer System Architect Amor Ministries [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list