diff options
Diffstat (limited to 'poll/unix/z_asio.c')
-rw-r--r-- | poll/unix/z_asio.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/poll/unix/z_asio.c b/poll/unix/z_asio.c index 7e0fd89a549c3..48b531cc8c74e 100644 --- a/poll/unix/z_asio.c +++ b/poll/unix/z_asio.c @@ -247,9 +247,11 @@ static apr_status_t asio_pollset_cleanup(apr_pollset_t *pollset) int rv; DBG(4, "entered\n"); - rv = msgctl(pollset->p->msg_q, IPC_RMID, NULL); + if (pollset->flags & APR_POLLSET_THREADSAFE) { + rv = msgctl(pollset->p->msg_q, IPC_RMID, NULL); + DBG1(4, "asio_pollset_cleanup: msgctl(IPC_RMID) returned %d\n", rv); + } - DBG1(4, "exiting, msgctl(IPC_RMID) returned %d\n", rv); return rv; } @@ -264,13 +266,13 @@ static apr_status_t asio_pollset_create(apr_pollset_t *pollset, DBG1(2, "entered, flags: %x\n", flags); - priv = pollset->p = apr_palloc(p, sizeof(*priv)); + priv = pollset->p = apr_pcalloc(p, sizeof(*priv)); if (flags & APR_POLLSET_THREADSAFE) { #if APR_HAS_THREADS - if (rv = apr_thread_mutex_create(&(priv->ring_lock), + if ((rv = apr_thread_mutex_create(&(priv->ring_lock), APR_THREAD_MUTEX_DEFAULT, - p) != APR_SUCCESS) { + p)) != APR_SUCCESS) { DBG1(1, "apr_thread_mutex_create returned %d\n", rv); pollset->p = NULL; return rv; @@ -481,7 +483,8 @@ static apr_status_t asio_pollset_remove(apr_pollset_t *pollset, asio_elem_t *elem; apr_status_t rv = APR_SUCCESS; apr_pollset_private_t *priv = pollset->p; - struct aiocb cancel_a; /* AIO_CANCEL is synchronous, so autodata works fine */ + /* AIO_CANCEL is synchronous, so autodata works fine. */ + struct aiocb cancel_a = {0}; int fd; @@ -765,7 +768,7 @@ static apr_status_t asio_pollset_poll(apr_pollset_t *pollset, return rv; } /* end of asio_pollset_poll */ -static apr_pollset_provider_t impl = { +static const apr_pollset_provider_t impl = { asio_pollset_create, asio_pollset_add, asio_pollset_remove, @@ -774,6 +777,6 @@ static apr_pollset_provider_t impl = { "asio" }; -apr_pollset_provider_t *apr_pollset_provider_aio_msgq = &impl; +const apr_pollset_provider_t *apr_pollset_provider_aio_msgq = &impl; #endif /* HAVE_AIO_MSGQ */ |