#include "session_queue.h"
#include "session_private.h"
struct session_queue
{
struct session *head;
struct session *tail;
int count;
};
struct session_queue *session_queue_new()
struct session_queue *queue = (struct session_queue *)calloc(1, sizeof(struct session_queue));
if (queue == NULL)
return NULL;
}
return queue;
void session_queue_free(struct session_queue *queue)
if (queue)
free(queue);
queue = NULL;
void session_queue_push(struct session_queue *queue, struct session *sess)
if (queue == NULL || sess == NULL)
return;
if (queue->head == NULL)
queue->head = sess;
queue->tail = sess;
else
queue->tail->next_ready_ptr = sess;
sess->next_ready_ptr = NULL;
queue->count++;
struct session *session_queue_pop(struct session_queue *queue)
struct session *sess = queue->head;
if (sess == NULL)
if (queue->head == queue->tail)
queue->head = NULL;
queue->tail = NULL;
queue->head = sess->next_ready_ptr;
queue->count--;
return sess;