apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Marquis <pmarq...@pobox.com>
Subject Bug in Thread Safe FIFO bounded queue???
Date Tue, 28 Jan 2003 18:15:58 GMT
I think the Thread Safe FIFO bounded queue has a bug in the various 
pop() functions.  The data returned in these functions is set to the 
address of the internal array used for storing the queued objects. 
The returned data should be what's passed in via a previous call to 
one of the push() functions.

Here is a patch (this breaks test/testqueue.c, which seems odd to me).

--- misc/apr_queue.c.orig       Mon Jan 13 15:15:50 2003
+++ misc/apr_queue.c    Tue Jan 28 13:11:18 2003
@@ -340,7 +340,7 @@
          need_signal = 1;
      }

-    *data = &queue->data[queue->out];
+    *data = queue->data[queue->out];
      queue->nelts--;

      queue->out = (queue->out + 1) % queue->bounds;
@@ -386,7 +386,7 @@
          need_signal = 1;
      }

-    *data = &queue->data[queue->out];
+    *data = queue->data[queue->out];
      queue->nelts--;

      queue->out = (queue->out + 1) % queue->bounds;

--
Paul Marquis
pmarquis@pobox.com


Mime
View raw message