motorz_core_t *mz = scon->mz;
apr_thread_mutex_lock(mz->mtx);
- apr_skiplist_remove(mz->timer_ring, &scon->timer, NULL);
+ apr_skiplist_remove(mz->timeout_ring, &scon->timer, NULL);
apr_thread_mutex_unlock(mz->mtx);
}
ap_lingering_close(c);
ap_log_error(APLOG_MARK, APLOG_WARNING, 0, ap_server_conf, APLOGNO(02842)
- "io timeout hit (?)");
+ "io timeout hit (?) scon: %pp, c: %pp", scon, c);
}
static void *motorz_io_setup_conn(apr_thread_t *thread, void *baton)
"motorz_io_accept(): entered");
rv = lr->accept_func((void *)&socket, lr, ptrans);
- if (rv) {
+ if (rv != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_CRIT, rv, NULL, APLOGNO(02845)
"motorz_io_accept failed");
clean_child_exit(APEXIT_CHILDSICK);
return status;
}
-static void motorz_register_timer(motorz_conn_t *scon,
- motorz_timer_cb cb,
- apr_interval_time_t relative_time)
+static void motorz_register_timeout(motorz_conn_t *scon,
+ motorz_timer_cb cb,
+ apr_interval_time_t relative_time)
{
apr_time_t t = apr_time_now() + relative_time;
motorz_timer_t *elem = &scon->timer;
elem->pool = scon->pool;
elem->mz = mz;
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf, APLOGNO()
+ "motorz_register_timer(): insert ELEM: %pp", elem);
+
apr_thread_mutex_lock(mz->mtx);
#ifdef AP_DEBUG
- ap_assert(apr_skiplist_insert(mz->timer_ring, elem));
+ ap_assert(apr_skiplist_insert(mz->timeout_ring, elem));
#else
- apr_skiplist_insert(mz->timer_ring, elem);
+ apr_skiplist_insert(mz->timeout_ring, elem);
#endif
apr_thread_mutex_unlock(mz->mtx);
}
* Set a write timeout for this connection, and let the
* event thread poll for writeability.
*/
- motorz_register_timer(scon,
+ motorz_register_timeout(scon,
motorz_io_timeout_cb,
motorz_get_timeout(scon));
}
if (scon->cs.state == CONN_STATE_LINGER) {
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf, APLOGNO()
+ "motorz_io_process(): CONN_STATE_LINGER");
ap_lingering_close(c);
}
if (scon->cs.state == CONN_STATE_CHECK_REQUEST_LINE_READABLE) {
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf, APLOGNO()
"motorz_io_process(): CONN_STATE_CHECK_REQUEST_LINE_READABLE");
- motorz_register_timer(scon,
+ motorz_register_timeout(scon,
motorz_io_timeout_cb,
motorz_get_keep_alive_timeout(scon));
(void) ap_update_child_status(sbh, SERVER_READY, (request_rec *) NULL);
- apr_skiplist_init(&mz->timer_ring, mz->pool);
- apr_skiplist_set_compare(mz->timer_ring, timer_comp, timer_comp);
+ apr_skiplist_init(&mz->timeout_ring, mz->pool);
+ apr_skiplist_set_compare(mz->timeout_ring, timer_comp, timer_comp);
status = motorz_setup_workers(mz);
if (status != APR_SUCCESS) {
ap_log_error(APLOG_MARK, APLOG_CRIT, status, ap_server_conf, APLOGNO(02868)
apr_interval_time_t timeout = apr_time_from_msec(500);
apr_thread_mutex_lock(mz->mtx);
- te = apr_skiplist_peek(mz->timer_ring);
+ te = apr_skiplist_peek(mz->timeout_ring);
if (te) {
if (tnow < te->expires) {
/* now iterate any timers and push to worker pool */
while (te && te->expires < tnow) {
- apr_skiplist_pop(mz->timer_ring, NULL);
+ apr_skiplist_pop(mz->timeout_ring, NULL);
motorz_timer_event_process(mz, te);
- te = apr_skiplist_peek(mz->timer_ring);
+ te = apr_skiplist_peek(mz->timeout_ring);
}
apr_thread_mutex_unlock(mz->mtx);
if (!g_motorz_core) {
mz = g_motorz_core = ap_retained_data_create(userdata_key, sizeof(*g_motorz_core));
mz->max_daemons_limit = -1;
- mz->timer_ring = motorz_timer_ring;
+ mz->timeout_ring = motorz_timer_ring;
mz->pollset = motorz_pollset;
}
++mz->module_loads;