X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=chunk_queue.c;h=5328c1132f51ff9b85c2c448f740233732c76a10;hp=f7f503abea9ecc093fc4d577942bea36b510d419;hb=62c2dc7f15d4875ec86b9de7bb9a5f82413f7ac9;hpb=e61fefa8429ed4c87098f7a81373a8cf952ee8c7 diff --git a/chunk_queue.c b/chunk_queue.c index f7f503ab..5328c113 100644 --- a/chunk_queue.c +++ b/chunk_queue.c @@ -1,17 +1,19 @@ /* - * Copyright (C) 2007-2008 Andre Noll + * Copyright (C) 2007-2014 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ /** \file chunk_queue.c Queuing functions for paraslash senders. */ +#include + #include "para.h" #include "list.h" #include "afh.h" -#include "vss.h" #include "string.h" #include "error.h" +#include "chunk_queue.h" /** * Senders may use the chunk queue facility to deal with laggy connections. It @@ -80,12 +82,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); } @@ -110,7 +114,7 @@ void cq_update(struct chunk_queue *cq, size_t sent) * * \param qc The queued chunk. * \param buf Result pointer. - * \param len Number of bytes of \a buf. + * \param num_bytes Number of bytes of \a buf. * * \return Positive on success, negative on errors. */