The TServerSocket::Accept() seems to be missing a TSocket delete in the
event that a socket connection isn't waiting. When the
TServerSocket::SetOption( kNoBlock,1), is used and Accept is placed in a
working loop, system memory vanishes rather quickly.
TSocket *TServerSocket::Accept()
{
TSocket *socket = new TSocket;
Int_t soc = gSystem->AcceptConnection(fSocket);
if (soc == -1) return 0;
if (soc == -2) return (TSocket*) -1;
etc...
}
I think it needs the following:
TSocket *TServerSocket::Accept()
{
TSocket *socket = new TSocket;
Int_t soc = gSystem->AcceptConnection(fSocket);
if (soc == -1)
{
delete socket;
return 0;
}
if (soc == -2)
{
delete socket;
return (TSocket*) -1;
}
...etc
}
William Deninger
deninger@uiuc.edu