I believe I may have run into a concurrency error in the Network::connect method. If many calls to Network::connect are made in a program that simply sends a Bottle through a port, it will eventually come to a deadlock. I've tested this in two different computers with YARP's head cvs revision and with both ACE 5.6.7 and 5.6.8 (released a couple of days ago). In both machines the results were similar.
These symptoms where accompanied with errors in YARP's regression tests. Meanwhile, Paul Fitzpatrick gave me a statically linked version of harness_os which passed all tests. But statically linked versions of the example code I wrote to exemplify the problem failed to work correctly on my machine.
I attach example code that demonstrates the problem. Just decompress, compile, run the "echo" program in one shell and the "producer" in another. "producer" is sending Bottles to the "echo" program which is sending them back. Before each write to the port a Network::connect is called in order to establish the connection between the opened ports. Besides the first time it is run, it is being called to connect already connected ports. I know this is not the optimal way of managing connections between ports, but the program coming to a deadlock is not the behavior one would expect. I would expect the code to work, probably with a greater overhead to send the Bottles because of the repeated attempts to connect already connected ports.