const struct engine *engine = worker->engine;
const struct network *net = &engine->net;
uint64_t idle_in_timeout = net->tcp.in_idle_timeout;
- uint64_t last_activity = session_last_input_activity(s);
+ uint64_t last_activity = session_last_activity(s);
uint64_t idle_time = kr_now() - last_activity;
if (idle_time < idle_in_timeout) {
idle_in_timeout -= idle_time;
ssize_t wire_buf_size; /**< Buffer size. */
ssize_t wire_buf_start_idx; /**< Data start offset in wire_buf. */
ssize_t wire_buf_end_idx; /**< Data end offset in wire_buf. */
- uint64_t last_input_activity; /**< Either creatoion time or time of peer's last activity */
+ uint64_t last_activity; /**< Time of last IO activity (if any occurs).
+ * Otherwise session creation time. */
};
static void on_session_close(uv_handle_t *handle)
/** Update timestamp */
void session_touch(struct session *s)
{
- s->last_input_activity = kr_now();
+ s->last_activity = kr_now();
}
-uint64_t session_last_input_activity(struct session *s)
+uint64_t session_last_activity(struct session *s)
{
- return s->last_input_activity;
+ return s->last_activity;
}
void session_kill_ioreq(struct session *s, struct qr_task *task);
/** Update timestamp */
void session_touch(struct session *s);
-uint64_t session_last_input_activity(struct session *s);
+/** Returns either creation time or time of last IO activity if any occurs. */
+/* Used for TCP timeout calculation. */
+uint64_t session_last_activity(struct session *s);
}
if (ret == 0) {
+ session_touch(session);
if (session_flags(session)->outgoing) {
session_tasklist_add(session, task);
}