theres a first attempt of a parallel dial implementation that doesnt need shared memory to coordinate the the spawning:
/n/sources/contrib/cinap_lenrek/dial.c it will run at maximum Maxconcurr connects in parallel at a time until there are no more addresses to connect to left, a connection is established or it got interrupted. if there is only one address, it will not fork and do synchronous connect. its not more complicated than the shared memory version in my opinion and will work with libthread programs without any tricks. -- cinap