Skip to content

Commit 68bf25c

Browse files
1261385937xakod
authored andcommitted
optimize interface
1 parent 22cdfc5 commit 68bf25c

File tree

2 files changed

+7
-11
lines changed

2 files changed

+7
-11
lines changed

clickhouse/base/socket.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -114,22 +114,20 @@ void SetNonBlock(SOCKET fd, bool value) {
114114

115115
void SetTimeout(SOCKET fd, const SocketTimeoutParams& timeout_params) {
116116
#if defined(_unix_)
117-
timeval recv_timeout { timeout_params.recv_timeout_s.count(), static_cast<int>(timeout_params.recv_timeout_us.count()) };
117+
timeval recv_timeout{ timeout_params.recv_timeout.count() / 1000, static_cast<int>(timeout_params.recv_timeout.count() % 1000 * 1000) };
118118
auto recv_ret = setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &recv_timeout, sizeof(recv_timeout));
119119

120-
timeval send_timeout { timeout_params.send_timeout_s.count(), static_cast<int>(timeout_params.send_timeout_us.count()) };
120+
timeval send_timeout{ timeout_params.send_timeout.count() / 1000, static_cast<int>(timeout_params.send_timeout.count() % 1000 * 1000) };
121121
auto send_ret = setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &send_timeout, sizeof(send_timeout));
122122

123123
if (recv_ret == -1 || send_ret == -1) {
124124
throw std::system_error(getSocketErrorCode(), getErrorCategory(), "fail to set socket timeout");
125125
}
126126
#else
127-
const struct timeval recv_tv { timeout_params.recv_timeout_s.count(), timeout_params.recv_timeout_us.count()};
128-
DWORD recv_timeout = recv_tv.tv_sec * 1000 + recv_tv.tv_usec / 1000;
127+
DWORD recv_timeout = static_cast<DWORD>(timeout_params.recv_timeout.count());
129128
auto recv_ret = setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, (const char*)&recv_timeout, sizeof(DWORD));
130-
131-
const struct timeval send_tv { timeout_params.send_timeout_s.count(), timeout_params.send_timeout_us.count()};
132-
DWORD send_timeout = send_tv.tv_sec * 1000 + send_tv.tv_usec / 1000;
129+
130+
DWORD send_timeout = static_cast<DWORD>(timeout_params.send_timeout.count());
133131
auto send_ret = setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, (const char*)&send_timeout, sizeof(DWORD));
134132

135133
if (recv_ret == SOCKET_ERROR || send_ret == SOCKET_ERROR) {

clickhouse/base/socket.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,8 @@ class SocketFactory {
8383

8484

8585
struct SocketTimeoutParams {
86-
const std::chrono::seconds recv_timeout_s {0};
87-
const std::chrono::seconds send_timeout_s {0};
88-
const std::chrono::microseconds recv_timeout_us{ 0 };
89-
const std::chrono::microseconds send_timeout_us{ 0 };
86+
std::chrono::milliseconds recv_timeout{ 0 };
87+
std::chrono::milliseconds send_timeout{ 0 };
9088
};
9189

9290
class Socket : public SocketBase {

0 commit comments

Comments
 (0)