void run() override { setName( "Slave" ); co::ConnectionDescriptionPtr desc = new co::ConnectionDescription; co::LocalNodePtr node = new co::LocalNode; node->addConnectionDescription( desc ); TEST( node->listen( )); co::NodePtr server = new co::Node; co::ConnectionDescriptionPtr serverDesc = new co::ConnectionDescription; _port.waitNE( 0 ); serverDesc->port = _port.get(); server->addConnectionDescription( serverDesc ); _barrier.waitNE( 0 ); TEST( node->connect( server )); co::Barrier barrier( node, co::ObjectVersion( _barrier.get( ))); TEST( barrier.isGood( )); TEST( barrier.getVersion() == co::VERSION_FIRST ); std::cerr << "Slave enter" << std::endl; TEST( barrier.enter( )); std::cerr << "Slave left" << std::endl; barrier.sync( co::VERSION_FIRST + 1 ); TEST( barrier.getVersion() == co::VERSION_FIRST + 1 ); std::cerr << "Slave enter" << std::endl; TEST( barrier.enter( )); std::cerr << "Slave left" << std::endl; node->unmapObject( &barrier ); node->close(); }