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