From: Andre Noll Date: Mon, 12 Apr 2010 16:04:31 +0000 (+0200) Subject: chunk queue: Fix chunk dequeuing. X-Git-Tag: v0.4.2~12^2 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=30ef430cdbf14c326fe72918fc48153fa005a41c;p=paraslash.git chunk queue: Fix chunk dequeuing. We missed to update the number of pending bytes when removing a chunk from the queue. This patch also clarifies the description of the cq parameter of cq_dequeue(). Thanks to Gerrit Renker who pointed out this bug. --- diff --git a/chunk_queue.c b/chunk_queue.c index fa317185..d295b6c0 100644 --- a/chunk_queue.c +++ b/chunk_queue.c @@ -80,12 +80,14 @@ 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); }