Author: rhuijben Date: Wed Nov 18 13:08:12 2015 New Revision: 1714992 URL: http://svn.apache.org/viewvc?rev=1714992&view=rev Log: Following up on r1714990, move the connections reqevents variable in the io baton.
* incoming.c (read_from_client, serf_incoming_create2, serf_listener_create, serf__incoming_update_pollset): Update usages. * outgoing.c (serf__conn_update_pollset, remove_connection, serf__process_connection, serf_connection_create): Update usages. * protocols/fcgi_protocol.c (serf_fcgi_protocol_t): Remove pointer. (serf_fcgi__enqueue_frame): Update usages. (serf__fcgi_protocol_init, serf__fcgi_protocol_init_server): Remove init. * protocols/http2_protocol.c (serf_http2_protocol_t): Remove pointer. serf__http2_protocol_init, serf__http2_protocol_init_server): Remove init. (serf_http2__enqueue_frame): Update usage. * serf_private.h (serf_io_baton_t): Add variable here. (serf_incoming_t, serf_connection_t): Remove here. Modified: serf/trunk/incoming.c serf/trunk/outgoing.c serf/trunk/protocols/fcgi_protocol.c serf/trunk/protocols/http2_protocol.c serf/trunk/serf_private.h Modified: serf/trunk/incoming.c URL: http://svn.apache.org/viewvc/serf/trunk/incoming.c?rev=1714992&r1=1714991&r2=1714992&view=diff ============================================================================== --- serf/trunk/incoming.c (original) +++ serf/trunk/incoming.c Wed Nov 18 13:08:12 2015 @@ -369,7 +369,7 @@ static apr_status_t read_from_client(ser /* Remove us from the pollset */ tdesc.desc_type = APR_POLL_SOCKET; tdesc.desc.s = client->skt; - tdesc.reqevents = client->reqevents; + tdesc.reqevents = client->io.reqevents; client->ctx->pollset_rm(client->ctx->pollset_baton, &tdesc, &client->io); @@ -730,6 +730,7 @@ apr_status_t serf_incoming_create2( ic->io.u.client = ic; ic->io.ctx = ctx; ic->io.dirty_conn = false; + ic->io.reqevents = 0; ic->req_setup = req_setup; ic->req_setup_baton = req_setup_baton; ic->skt = insock; @@ -805,6 +806,7 @@ apr_status_t serf_listener_create( l->io.u.listener = l; l->io.ctx = ctx; l->io.dirty_conn = false; + l->io.reqevents = 0; l->accept_func = accept; l->accept_baton = accept_baton; @@ -903,7 +905,7 @@ apr_status_t serf__incoming_update_polls /* Remove the socket from the poll set. */ desc.desc_type = APR_POLL_SOCKET; desc.desc.s = client->skt; - desc.reqevents = client->reqevents; + desc.reqevents = client->io.reqevents; status = ctx->pollset_rm(ctx->pollset_baton, &desc, &client->io); @@ -965,7 +967,7 @@ apr_status_t serf__incoming_update_polls } /* save our reqevents, so we can pass it in to remove later. */ - client->reqevents = desc.reqevents; + client->io.reqevents = desc.reqevents; /* Note: even if we don't want to read/write this socket, we still * want to poll it for hangups and errors. Modified: serf/trunk/outgoing.c URL: http://svn.apache.org/viewvc/serf/trunk/outgoing.c?rev=1714992&r1=1714991&r2=1714992&view=diff ============================================================================== --- serf/trunk/outgoing.c (original) +++ serf/trunk/outgoing.c Wed Nov 18 13:08:12 2015 @@ -158,7 +158,7 @@ apr_status_t serf__conn_update_pollset(s /* Remove the socket from the poll set. */ desc.desc_type = APR_POLL_SOCKET; desc.desc.s = conn->skt; - desc.reqevents = conn->reqevents; + desc.reqevents = conn->io.reqevents; status = ctx->pollset_rm(ctx->pollset_baton, &desc, &conn->io); @@ -253,7 +253,7 @@ apr_status_t serf__conn_update_pollset(s } /* save our reqevents, so we can pass it in to remove later. */ - conn->reqevents = desc.reqevents; + conn->io.reqevents = desc.reqevents; /* Note: even if we don't want to read/write this socket, we still * want to poll it for hangups and errors. @@ -639,7 +639,7 @@ static apr_status_t remove_connection(se desc.desc_type = APR_POLL_SOCKET; desc.desc.s = conn->skt; - desc.reqevents = conn->reqevents; + desc.reqevents = conn->io.reqevents; return ctx->pollset_rm(ctx->pollset_baton, &desc, &conn->io); @@ -1504,7 +1504,7 @@ apr_status_t serf__process_connection(se if (conn->status) { tdesc.desc_type = APR_POLL_SOCKET; tdesc.desc.s = conn->skt; - tdesc.reqevents = conn->reqevents; + tdesc.reqevents = conn->io.reqevents; ctx->pollset_rm(ctx->pollset_baton, &tdesc, &conn->io); return conn->status; @@ -1524,7 +1524,7 @@ apr_status_t serf__process_connection(se if (conn->skt) { tdesc.desc_type = APR_POLL_SOCKET; tdesc.desc.s = conn->skt; - tdesc.reqevents = conn->reqevents; + tdesc.reqevents = conn->io.reqevents; ctx->pollset_rm(ctx->pollset_baton, &tdesc, &conn->io); } @@ -1561,6 +1561,7 @@ serf_connection_t *serf_connection_creat conn->io.u.conn = conn; conn->io.ctx = ctx; conn->io.dirty_conn = false; + conn->io.reqevents = 0; conn->hit_eof = 0; conn->state = SERF_CONN_INIT; conn->latency = -1; /* unknown */ Modified: serf/trunk/protocols/fcgi_protocol.c URL: http://svn.apache.org/viewvc/serf/trunk/protocols/fcgi_protocol.c?rev=1714992&r1=1714991&r2=1714992&view=diff ============================================================================== --- serf/trunk/protocols/fcgi_protocol.c (original) +++ serf/trunk/protocols/fcgi_protocol.c Wed Nov 18 13:08:12 2015 @@ -45,8 +45,6 @@ typedef struct serf_fcgi_protocol_t serf_bucket_alloc_t *allocator; serf_config_t *config; - apr_int16_t *req_events; - serf_bucket_t *stream; serf_bucket_t *ostream; @@ -388,8 +386,8 @@ apr_status_t serf_fcgi__enqueue_frame(se want_write = APR_STATUS_IS_EAGAIN(status); - if ((want_write && !(*fcgi->req_events & APR_POLLOUT)) - || (!want_write && (*fcgi->req_events & APR_POLLOUT))) + if ((want_write && !(fcgi->io->reqevents & APR_POLLOUT)) + || (!want_write && (fcgi->io->reqevents & APR_POLLOUT))) { serf_io__set_pollset_dirty(fcgi->io); } @@ -539,7 +537,6 @@ void serf__fcgi_protocol_init(serf_conne fcgi->pool = protocol_pool; fcgi->conn = conn; fcgi->io = &conn->io; - fcgi->req_events = &conn->reqevents; fcgi->stream = conn->stream; fcgi->ostream = conn->ostream_tail; fcgi->allocator = conn->allocator; @@ -609,7 +606,6 @@ void serf__fcgi_protocol_init_server(ser fcgi->pool = protocol_pool; fcgi->client = client; fcgi->io = &client->io; - fcgi->req_events = &client->reqevents; fcgi->stream = client->stream; fcgi->ostream = client->ostream_tail; fcgi->allocator = client->allocator; Modified: serf/trunk/protocols/http2_protocol.c URL: http://svn.apache.org/viewvc/serf/trunk/protocols/http2_protocol.c?rev=1714992&r1=1714991&r2=1714992&view=diff ============================================================================== --- serf/trunk/protocols/http2_protocol.c (original) +++ serf/trunk/protocols/http2_protocol.c Wed Nov 18 13:08:12 2015 @@ -123,7 +123,6 @@ struct serf_http2_protocol_t serf_io_baton_t *io; /* Low level connection */ - apr_int16_t *req_events; serf_bucket_t *stream, *ostream; serf_bucket_alloc_t *allocator; @@ -240,7 +239,6 @@ void serf__http2_protocol_init(serf_conn h2->pool = protocol_pool; h2->conn = conn; h2->io = &conn->io; - h2->req_events = &conn->reqevents; h2->stream = conn->stream; h2->ostream = conn->ostream_tail; h2->allocator = conn->allocator; @@ -333,7 +331,6 @@ void serf__http2_protocol_init_server(se h2->pool = protocol_pool; h2->client = client; h2->io = &client->io; - h2->req_events = &client->reqevents; h2->stream = client->stream; h2->ostream = client->ostream_tail; h2->allocator = client->allocator; @@ -475,8 +472,8 @@ serf_http2__enqueue_frame(serf_http2_pro want_write = APR_STATUS_IS_EAGAIN(status); - if ((want_write && !(*h2->req_events & APR_POLLOUT)) - || (!want_write && (*h2->req_events & APR_POLLOUT))) + if ((want_write && !(h2->io->reqevents & APR_POLLOUT)) + || (!want_write && (h2->io->reqevents & APR_POLLOUT))) { serf_io__set_pollset_dirty(h2->io); } Modified: serf/trunk/serf_private.h URL: http://svn.apache.org/viewvc/serf/trunk/serf_private.h?rev=1714992&r1=1714991&r2=1714992&view=diff ============================================================================== --- serf/trunk/serf_private.h (original) +++ serf/trunk/serf_private.h Wed Nov 18 13:08:12 2015 @@ -142,6 +142,9 @@ typedef struct serf_io_baton_t { serf_context_t *ctx; bool dirty_conn; + /* the last reqevents we gave to pollset_add */ + apr_int16_t reqevents; + } serf_io_baton_t; /* Should we use static APR_INLINE instead? */ @@ -387,8 +390,6 @@ struct serf_incoming_t { apr_pollfd_t desc; - /* the last reqevents we gave to pollset_add */ - apr_int16_t reqevents; apr_int16_t seen_in_pollset; struct iovec vec[IOV_MAX]; @@ -453,9 +454,6 @@ struct serf_connection_t { apr_socket_t *skt; apr_pool_t *skt_pool; - /* the last reqevents we gave to pollset_add */ - apr_int16_t reqevents; - /* the events we've seen for this connection in our returned pollset */ apr_int16_t seen_in_pollset;