You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by jf...@apache.org on 2011/09/14 08:19:11 UTC
svn commit: r1170443 - in /thrift/trunk/lib/cpp/src/transport:
TServerSocket.cpp TServerSocket.h
Author: jfarrell
Date: Wed Sep 14 06:19:10 2011
New Revision: 1170443
URL: http://svn.apache.org/viewvc?rev=1170443&view=rev
Log:
THRIFT-1335: Add accept timeout to TServerSocket
Client: cpp
Patch: Dave Watson
Added an accept timeout to the TServerSocket poll loop
Modified:
thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp
thrift/trunk/lib/cpp/src/transport/TServerSocket.h
Modified: thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp?rev=1170443&r1=1170442&r2=1170443&view=diff
==============================================================================
--- thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp (original)
+++ thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp Wed Sep 14 06:19:10 2011
@@ -63,6 +63,7 @@ TServerSocket::TServerSocket(int port) :
acceptBacklog_(1024),
sendTimeout_(0),
recvTimeout_(0),
+ accTimeout_(-1),
retryLimit_(0),
retryDelay_(0),
tcpSendBuffer_(0),
@@ -76,6 +77,7 @@ TServerSocket::TServerSocket(int port, i
acceptBacklog_(1024),
sendTimeout_(sendTimeout),
recvTimeout_(recvTimeout),
+ accTimeout_(-1),
retryLimit_(0),
retryDelay_(0),
tcpSendBuffer_(0),
@@ -109,6 +111,10 @@ void TServerSocket::setRecvTimeout(int r
recvTimeout_ = recvTimeout;
}
+void TServerSocket::setAcceptTimeout(int accTimeout) {
+ accTimeout_ = accTimeout;
+}
+
void TServerSocket::setRetryLimit(int retryLimit) {
retryLimit_ = retryLimit;
}
@@ -342,7 +348,11 @@ shared_ptr<TTransport> TServerSocket::ac
fds[1].fd = intSock2_;
fds[1].events = POLLIN;
}
- int ret = poll(fds, 2, -1);
+ /*
+ TODO: if EINTR is received, we'll restart the timeout.
+ To be accurate, we need to fix this in the future.
+ */
+ int ret = poll(fds, 2, accTimeout_);
if (ret < 0) {
// error cases
Modified: thrift/trunk/lib/cpp/src/transport/TServerSocket.h
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/cpp/src/transport/TServerSocket.h?rev=1170443&r1=1170442&r2=1170443&view=diff
==============================================================================
--- thrift/trunk/lib/cpp/src/transport/TServerSocket.h (original)
+++ thrift/trunk/lib/cpp/src/transport/TServerSocket.h Wed Sep 14 06:19:10 2011
@@ -43,6 +43,8 @@ class TServerSocket : public TServerTran
void setSendTimeout(int sendTimeout);
void setRecvTimeout(int recvTimeout);
+ void setAcceptTimeout(int accTimeout);
+
void setRetryLimit(int retryLimit);
void setRetryDelay(int retryDelay);
@@ -65,6 +67,7 @@ class TServerSocket : public TServerTran
int acceptBacklog_;
int sendTimeout_;
int recvTimeout_;
+ int accTimeout_;
int retryLimit_;
int retryDelay_;
int tcpSendBuffer_;