void yarp::os::impl::LocalCarrierStream::close() { if (owner != nullptr) { LocalCarrier *owned = owner; owner = nullptr; owned->shutdown(); } done = true; }
void yarp::os::impl::LocalCarrierStream::close() { SocketTwoWayStream::close(); if (owner != YARP_NULLPTR) { LocalCarrier *owned = owner; owner = YARP_NULLPTR; owned->shutdown(); } done = true; }
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(); } }