You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by yl...@apache.org on 2016/09/28 20:48:30 UTC
svn commit: r1762707 - /httpd/httpd/trunk/server/mpm/event/event.c
Author: ylavic
Date: Wed Sep 28 20:48:30 2016
New Revision: 1762707
URL: http://svn.apache.org/viewvc?rev=1762707&view=rev
Log:
event: compute now() in event_get_timer_event, when necessary.
Modified:
httpd/httpd/trunk/server/mpm/event/event.c
Modified: httpd/httpd/trunk/server/mpm/event/event.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/event/event.c?rev=1762707&r1=1762706&r2=1762707&view=diff
==============================================================================
--- httpd/httpd/trunk/server/mpm/event/event.c (original)
+++ httpd/httpd/trunk/server/mpm/event/event.c Wed Sep 28 20:48:30 2016
@@ -1495,6 +1495,8 @@ static timer_event_t * event_get_timer_e
apr_array_header_t *remove)
{
timer_event_t *te;
+ apr_time_t now = (t < 0) ? 0 : apr_time_now();
+
/* oh yeah, and make locking smarter/fine grained. */
apr_thread_mutex_lock(g_timer_skiplist_mtx);
@@ -1511,7 +1513,7 @@ static timer_event_t * event_get_timer_e
te->cbfunc = cbfn;
te->baton = baton;
te->canceled = 0;
- te->when = t;
+ te->when = now + t;
te->remove = remove;
if (insert) {
@@ -1528,7 +1530,7 @@ static apr_status_t event_register_timed
void *baton,
apr_array_header_t *remove)
{
- event_get_timer_event(t + apr_time_now(), cbfn, baton, 1, remove);
+ event_get_timer_event(t, cbfn, baton, 1, remove);
return APR_SUCCESS;
}
@@ -1588,7 +1590,7 @@ static apr_status_t event_register_poll_
if (timeout > 0) {
/* XXX: This cancel timer event count fire before the pollset is updated */
- scb->cancel_event = event_get_timer_event(timeout + apr_time_now(), tofn, baton, 1, pfds);
+ scb->cancel_event = event_get_timer_event(timeout, tofn, baton, 1, pfds);
}
for (i = 0; i < pfds->nelts; i++) {
apr_pollfd_t *pfd = (apr_pollfd_t *)pfds->elts + i;