summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES3
-rw-r--r--poll/unix/epoll.c6
-rw-r--r--poll/unix/kqueue.c6
-rw-r--r--poll/unix/port.c6
4 files changed, 6 insertions, 15 deletions
diff --git a/CHANGES b/CHANGES
index cc1cf50f1..948f564d7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,8 @@
Changes for APR 1.1.1
+ *) Use APR_RING_CONCAT for moving dead list in KQueue, sys_epoll, and
+ Event Ports. [Paul Querna]
+
*) find_apr.m4: Try installed APR before bundled copy if --with-apr not
passed to configure. [Justin Erenkrantz]
diff --git a/poll/unix/epoll.c b/poll/unix/epoll.c
index 9bc4a7d9c..24ac86090 100644
--- a/poll/unix/epoll.c
+++ b/poll/unix/epoll.c
@@ -256,11 +256,7 @@ APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset,
pollset_lock_rings();
/* Shift all PFDs in the Dead Ring to be Free Ring */
- while (!APR_RING_EMPTY(&(pollset->dead_ring), pfd_elem_t, link)) {
- ep = APR_RING_FIRST(&(pollset->dead_ring));
- APR_RING_REMOVE(ep, link);
- APR_RING_INSERT_TAIL(&(pollset->free_ring), ep, pfd_elem_t, link);
- }
+ APR_RING_CONCAT(&(pollset->free_ring), &(pollset->dead_ring), pfd_elem_t, link);
pollset_unlock_rings();
diff --git a/poll/unix/kqueue.c b/poll/unix/kqueue.c
index daf46369d..e04c132d9 100644
--- a/poll/unix/kqueue.c
+++ b/poll/unix/kqueue.c
@@ -274,11 +274,7 @@ APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset,
pollset_lock_rings();
/* Shift all PFDs in the Dead Ring to be Free Ring */
- while (!APR_RING_EMPTY(&(pollset->dead_ring), pfd_elem_t, link)) {
- ep = APR_RING_FIRST(&(pollset->dead_ring));
- APR_RING_REMOVE(ep, link);
- APR_RING_INSERT_TAIL(&(pollset->free_ring), ep, pfd_elem_t, link);
- }
+ APR_RING_CONCAT(&(pollset->free_ring), &(pollset->dead_ring), pfd_elem_t, link);
pollset_unlock_rings();
diff --git a/poll/unix/port.c b/poll/unix/port.c
index 4ecb56bf3..72f32884f 100644
--- a/poll/unix/port.c
+++ b/poll/unix/port.c
@@ -328,11 +328,7 @@ APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset,
pollset_lock_rings();
/* Shift all PFDs in the Dead Ring to be Free Ring */
- while (!APR_RING_EMPTY(&(pollset->dead_ring), pfd_elem_t, link)) {
- ep = APR_RING_FIRST(&(pollset->dead_ring));
- APR_RING_REMOVE(ep, link);
- APR_RING_INSERT_TAIL(&(pollset->free_ring), ep, pfd_elem_t, link);
- }
+ APR_RING_CONCAT(&(pollset->free_ring), &(pollset->dead_ring), pfd_elem_t, link);
pollset_unlock_rings();