Hi Susan, I'll investigate the issue to see if there are no side effects to removing shutdown(). Cheers, Fons. On Sun, Feb 27, 2000 at 02:16:10PM -0600, Susan Kasahara wrote: > Hi ROOTer's, > I am using the ROOT Networking classes in a parent/child server configuration. > I've noticed that TUnixSystem::CloseConnection (invoked by TSocket::Close on > our RH Linux system) uses the Unix "shutdown" function to close the socket > instead of the "close" function. The difference is that "close" will not really > close the socket until the parent/child socket reference count reaches 0 (meaning > both parent & child have closed the socket), whereas "shutdown" closes the > socket regardless of the socket reference count. In a parent/child configuration, > it's useful to be able to decrement the reference count of the accepted connection > socket in the parent, but leave the socket open in the child. > I'm wondering if the "shutdown" call is really necessary, i.e. instead of > > void TUnixSystem::CloseConnection(int sock) > { > // Close socket. > > if (sock < 0) return; > > #if !defined(R__AIX) || defined(_AIX41) || defined(_AIX43) > ::shutdown(sock, 2); > #endif > > while (::close(sock) == -1 && GetErrno() == EINTR) > ResetErrno(); > } > > the function could be modified to: > > void TUnixSystem::CloseConnection(int sock) > { > // Close socket. > > if (sock < 0) return; > > while (::close(sock) == -1 && GetErrno() == EINTR) > ResetErrno(); > } > > Thanks for taking the time to look at this. > Susan Kasahara -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7677910
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:20 MET