You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by mt...@apache.org on 2010/05/24 18:49:30 UTC
svn commit: r947711 - in /trafficserver/traffic/trunk/iocore:
eventsystem/I_SocketManager.h eventsystem/P_UnixSocketManager.h
eventsystem/SocketManager.cc net/UnixNetVConnection.cc
net/UnixUDPConnection.cc
Author: mturk
Date: Mon May 24 16:49:30 2010
New Revision: 947711
URL: http://svn.apache.org/viewvc?rev=947711&view=rev
Log:
TS-333: Apply Alan's patch for removing redundant fast_close
Modified:
trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h
trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h
trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc
trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc
trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc
Modified: trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h (original)
+++ trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h Mon May 24 16:49:30 2010
@@ -43,6 +43,8 @@ struct Thread;
#define SOCKET int
+/** Utility class for socket operations.
+ */
struct SocketManager
{
SocketManager();
@@ -113,15 +115,15 @@ struct SocketManager
int getsockname(int s, struct sockaddr *, socklen_t *);
- // result is 0 or -errno
+ /** Close the socket.
+ @return 0 if successful, -errno on error.
+ */
int close(int sock);
- int fast_close(int sock);
-
- int ink_bind(SOCKET s, struct sockaddr *name, int namelen, short protocol = 0);
+ int ink_bind(int s, struct sockaddr *name, int namelen, short protocol = 0);
int pagesize;
- virtual ~ SocketManager();
+ virtual ~ SocketManager();
private:
// just don't do it
Modified: trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h (original)
+++ trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h Mon May 24 16:49:30 2010
@@ -547,18 +547,6 @@ SocketManager::dup(int s)
return res;
}
-TS_INLINE int
-SocketManager::fast_close(int s)
-{
- int res;
- do {
- if ((res =::close(s)) >= 0)
- break;
- res = -errno;
- } while (res == -EINTR);
- return res;
-}
-
int safe_msync(caddr_t addr, size_t len, caddr_t end, int flags);
#ifndef MADV_NORMAL
Modified: trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc (original)
+++ trafficserver/traffic/trunk/iocore/eventsystem/SocketManager.cc Mon May 24 16:49:30 2010
@@ -139,18 +139,10 @@ typedef struct _DIP_ele
} DIP_ele;
int
-SocketManager::ink_bind(SOCKET s, struct sockaddr *name, int namelen, short Proto)
+SocketManager::ink_bind(int s, struct sockaddr *name, int namelen, short Proto)
{
(void) Proto;
- int retval;
-
- retval = safe_bind(s, name, namelen);
-
- if (retval < 0) {
- return retval;
- }
-
- return retval;
+ return safe_bind(s, name, namelen);
}
@@ -158,13 +150,15 @@ int
SocketManager::close(int s)
{
int res;
- if (!s) {
- printf("broken UDPConnection trying to close stdin\n");
- return 0;
- }
+
+ if (s == 0)
+ return -EACCES;
+ else if (s < 0)
+ return -EINVAL;
+
do {
- res =::close(s);
- if (res < 0)
+ res = ::close(s);
+ if (res == -1)
res = -errno;
} while (res == -EINTR);
return res;
Modified: trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc Mon May 24 16:49:30 2010
@@ -103,8 +103,7 @@ close_UnixNetVConnection(UnixNetVConnect
}
vc->cancel_OOB();
vc->ep.stop();
- socketManager.fast_close(vc->con.fd);
- vc->con.fd = NO_FD;
+ vc->con.close();
#ifdef INACTIVITY_TIMEOUT
if (vc->inactivity_timeout) {
vc->inactivity_timeout->cancel_action(vc);
Modified: trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc?rev=947711&r1=947710&r2=947711&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc (original)
+++ trafficserver/traffic/trunk/iocore/net/UnixUDPConnection.cc Mon May 24 16:49:30 2010
@@ -52,10 +52,10 @@ UnixUDPConnection::~UnixUDPConnection()
callbackAction = NULL;
}
Debug("udpnet", "Destroying udp port = %d", getPortNum());
- if (fd != -1) {
+ if (fd != NO_FD) {
socketManager.close(fd);
}
- fd = -1;
+ fd = NO_FD;
}
// called with continuation lock taken out