-/*
- * Copyright (C) 2007-2010 Andre Noll <maan@systemlinux.org>
- *
- * Licensed under the GPL v2. For licencing details see COPYING.
- */
+/* Copyright (C) 2007 Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */
/** \file chunk_queue.c Queuing functions for paraslash senders. */
#include "afh.h"
#include "string.h"
#include "error.h"
+#include "chunk_queue.h"
/**
* Senders may use the chunk queue facility to deal with laggy connections. It
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.
*
struct chunk_queue *cq_new(size_t max_pending)
{
struct chunk_queue *cq = para_malloc(sizeof(*cq));
- INIT_LIST_HEAD(&cq->q);
+ init_list_head(&cq->q);
cq->max_pending = max_pending;
cq->num_pending = 0;
return cq;