acceptBacklog_(1024),
sendTimeout_(0),
recvTimeout_(0),
+ accTimeout_(-1),
retryLimit_(0),
retryDelay_(0),
tcpSendBuffer_(0),
acceptBacklog_(1024),
sendTimeout_(sendTimeout),
recvTimeout_(recvTimeout),
+ accTimeout_(-1),
retryLimit_(0),
retryDelay_(0),
tcpSendBuffer_(0),
recvTimeout_ = recvTimeout;
}
+void TServerSocket::setAcceptTimeout(int accTimeout) {
+ accTimeout_ = accTimeout;
+}
+
void TServerSocket::setRetryLimit(int retryLimit) {
retryLimit_ = retryLimit;
}
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
void setSendTimeout(int sendTimeout);
void setRecvTimeout(int recvTimeout);
+ void setAcceptTimeout(int accTimeout);
+
void setRetryLimit(int retryLimit);
void setRetryDelay(int retryDelay);
int acceptBacklog_;
int sendTimeout_;
int recvTimeout_;
+ int accTimeout_;
int retryLimit_;
int retryDelay_;
int tcpSendBuffer_;