Hi,

Christoph Fuenfzig wrote:

Hi,

we have problems when terminating a ClusterWindow with ConnectionType "Multicast"
(Windows 2000, ICL 7.1).
The application always throws an exception "sendto: WSAEADDR-NOTAVAIL" on termination of the
ClusterWindow.

The problem is in MulticastConnection::stopAliveThread:
This code is from a time, when the Thread class had no kill or terminate funktion.
I'll add a try/ catch block or remove the whole funktion an replace it with _aliveThread->kill

void MulticastConnection::stopAliveThread()
{
    char tag;
    if(_aliveThread)
    {
        _stopAliveThread=true;
        DgramSocket s;
        s.open();
        s.sendTo(&tag,
                 sizeof(tag),
                 SocketAddress(_aliveSocket.getAddress()));

        BaseThread::join( _aliveThread );

//!!        ThreadManager::the()->removeThread(_aliveThread);

        _aliveThread=0;
        if(_aliveSocket.waitReadable(0))
            _aliveSocket.recv(&tag,sizeof(tag));
        s.close();
    }
}

The address
SocketAddress(_aliveSocket.getAddress()) seems to be invalid :-(
Is this a known problem?
As far as I know, it works fine, but I think most people are using Linux for clustering.

Thanks,
Christoph

Marcus

Reply via email to