void yarp::os::impl::LocalCarrier::shutdown() { if (!doomed) { doomed = true; peerMutex.lock(); if (peer != nullptr) { peer->accept(nullptr); LocalCarrier *wasPeer = peer; peer = nullptr; wasPeer->removePeer(); } peerMutex.unlock(); } }
void yarp::os::impl::LocalCarrier::shutdown() { if (!doomed) { doomed = true; peerMutex.wait(); if (peer != YARP_NULLPTR) { peer->accept(YARP_NULLPTR); LocalCarrier *wasPeer = peer; peer = YARP_NULLPTR; wasPeer->removePeer(); } peerMutex.post(); } }