The problem with this code is that threads may exit after I have put them into my list but before I call join on them.
I don't see why that would be a problem, thread-join! will work as well on exited threads.
However I guess you'll have to call tcp-service-unregister! before getting the list of threads or there can new threads be created before you're done joining those from the list.
Christian.