Skip to content

Commit 4c932e1

Browse files
committed
Performance improvement by avoiding unnecessary chrono access
1 parent d8195e3 commit 4c932e1

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

httplib.h

+8-6
Original file line numberDiff line numberDiff line change
@@ -6014,12 +6014,6 @@ inline void calc_actual_timeout(time_t global_timeout_msec,
60146014
time_t duration_msec, time_t timeout_sec,
60156015
time_t timeout_usec, time_t &actual_timeout_sec,
60166016
time_t &actual_timeout_usec) {
6017-
if (global_timeout_msec <= 0) {
6018-
actual_timeout_sec = timeout_sec;
6019-
actual_timeout_usec = timeout_usec;
6020-
return;
6021-
}
6022-
60236017
auto timeout_msec = (timeout_sec * 1000) + (timeout_usec / 1000);
60246018

60256019
auto actual_timeout_msec =
@@ -6045,6 +6039,10 @@ inline SocketStream::SocketStream(
60456039
inline SocketStream::~SocketStream() = default;
60466040

60476041
inline bool SocketStream::is_readable() const {
6042+
if (global_timeout_msec_ <= 0) {
6043+
return select_read(sock_, read_timeout_sec_, read_timeout_usec_) > 0;
6044+
}
6045+
60486046
time_t read_timeout_sec;
60496047
time_t read_timeout_usec;
60506048
calc_actual_timeout(global_timeout_msec_, duration(), read_timeout_sec_,
@@ -9190,6 +9188,10 @@ inline SSLSocketStream::SSLSocketStream(
91909188
inline SSLSocketStream::~SSLSocketStream() = default;
91919189

91929190
inline bool SSLSocketStream::is_readable() const {
9191+
if (global_timeout_msec_ <= 0) {
9192+
return select_read(sock_, read_timeout_sec_, read_timeout_usec_) > 0;
9193+
}
9194+
91939195
time_t read_timeout_sec;
91949196
time_t read_timeout_usec;
91959197
calc_actual_timeout(global_timeout_msec_, duration(), read_timeout_sec_,

test/test.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -8393,7 +8393,7 @@ TEST(GlobalTimeoutTest, ContentStreamSSL) {
83938393
svr.wait_until_ready();
83948394

83958395
const time_t timeout = 2000;
8396-
const time_t threshold = 500; // SSL_shutdown is slow...
8396+
const time_t threshold = 1000; // SSL_shutdown is slow...
83978397

83988398
SSLClient cli("localhost", PORT);
83998399
cli.enable_server_certificate_verification(false);

0 commit comments

Comments
 (0)