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 #2
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();
    }
}