> Index: server/mpm/event/event.c
> ===================================================================
> --- server/mpm/event/event.c    (revision 1642684)
> +++ server/mpm/event/event.c    (working copy)
> @@ -859,16 +859,16 @@ static int start_lingering_close_common(event_conn
>          cs->pub.state = CONN_STATE_LINGER_NORMAL;
>      }
>      apr_atomic_inc32(&lingering_count);
> +    cs->c->sbh = NULL;
> +    if (in_worker) {
> +        notify_suspend(cs);
> +    }
>      apr_thread_mutex_lock(timeout_mutex);
> -    cs->c->sbh = NULL;
>      TO_QUEUE_APPEND(*q, cs);
>      cs->pfd.reqevents = (
>              cs->pub.sense == CONN_SENSE_WANT_WRITE ? APR_POLLOUT :
>                      APR_POLLIN) | APR_POLLHUP | APR_POLLERR;
>      cs->pub.sense = CONN_SENSE_DEFAULT;
> -    if (in_worker) {
> -        notify_suspend(cs);
> -    }
>      rv = apr_pollset_add(event_pollset, &cs->pfd);
>      apr_thread_mutex_unlock(timeout_mutex);
>      if (rv != APR_SUCCESS && !APR_STATUS_IS_EEXIST(rv)) {

+1

Reply via email to