Merge branch 't/color_cleanups'
[paraslash.git] / chunk_queue.c
index 5b102f286641d7b93418f3ae92e7dcdf6f71d0f6..c0a8fb5179b96a0b6aa4c0a17ccf967d5718963b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2010 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2011 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -11,7 +11,6 @@
 #include "para.h"
 #include "list.h"
 #include "afh.h"
-#include "vss.h"
 #include "string.h"
 #include "error.h"
 
@@ -82,44 +81,18 @@ struct queued_chunk *cq_peek(struct chunk_queue *cq)
 /**
  * Remove the current chunk from the queue.
  *
- * \param cq The chunk to remove.
+ * \param cq The queue to remove from.
  */
 void cq_dequeue(struct chunk_queue *cq)
 {
        struct queued_chunk *qc = cq_peek(cq);
        assert(qc);
+       assert(cq->num_pending >= qc->num_bytes);
+       cq->num_pending -= qc->num_bytes;
        list_del(&qc->node);
        free(qc);
 }
 
-/**
- * Force to add a chunk to the given queue.
- *
- * \param cq See \ref cq_enqueue.
- * \param buf See \ref cq_enqueue.
- * \param num_bytes See \ref cq_enqueue.
- *
- * If queuing the given buffer would result in exceeding the maximal queue
- * size, buffers are dropped from the beginning of the queue. Note that this
- * function still might fail.
- *
- * \return Standard.
- */
-int cq_force_enqueue(struct chunk_queue *cq, const char *buf, size_t num_bytes)
-{
-       int ret;
-
-       if (num_bytes > cq->max_pending)
-               return -E_QUEUE;
-       for (;;) {
-               ret = cq_enqueue(cq, buf, num_bytes);
-               if (ret >= 0)
-                       return ret;
-               cq_dequeue(cq);
-       }
-       /* never reached */
-}
-
 /**
  * Change the number of bytes sent for the current queued chunk.
  *