File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / lighttpd / src / joblist.c
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Nov 2 10:35:00 2016 UTC (7 years, 8 months ago) by misho
Branches: lighttpd, MAIN
CVS tags: v1_4_41p8, HEAD
lighttpd 1.4.41

    1: #include "first.h"
    2: 
    3: #include "base.h"
    4: #include "joblist.h"
    5: #include "log.h"
    6: 
    7: #include <stdlib.h>
    8: #include <string.h>
    9: 
   10: int joblist_append(server *srv, connection *con) {
   11: 	if (con->in_joblist) return 0;
   12: 
   13: 	if (srv->joblist->size == 0) {
   14: 		srv->joblist->size  = 16;
   15: 		srv->joblist->ptr   = malloc(sizeof(*srv->joblist->ptr) * srv->joblist->size);
   16: 		force_assert(NULL != srv->joblist->ptr);
   17: 	} else if (srv->joblist->used == srv->joblist->size) {
   18: 		srv->joblist->size += 16;
   19: 		srv->joblist->ptr   = realloc(srv->joblist->ptr, sizeof(*srv->joblist->ptr) * srv->joblist->size);
   20: 		force_assert(NULL != srv->joblist->ptr);
   21: 	}
   22: 
   23: 	srv->joblist->ptr[srv->joblist->used++] = con;
   24: 
   25: 	return 0;
   26: }
   27: 
   28: void joblist_free(server *srv, connections *joblist) {
   29: 	UNUSED(srv);
   30: 
   31: 	free(joblist->ptr);
   32: 	free(joblist);
   33: }
   34: 
   35: connection *fdwaitqueue_unshift(server *srv, connections *fdwaitqueue) {
   36: 	connection *con;
   37: 	UNUSED(srv);
   38: 
   39: 
   40: 	if (fdwaitqueue->used == 0) return NULL;
   41: 
   42: 	con = fdwaitqueue->ptr[0];
   43: 
   44: 	memmove(fdwaitqueue->ptr, &(fdwaitqueue->ptr[1]), --fdwaitqueue->used * sizeof(*(fdwaitqueue->ptr)));
   45: 
   46: 	return con;
   47: }
   48: 
   49: int fdwaitqueue_append(server *srv, connection *con) {
   50: 	if (srv->fdwaitqueue->size == 0) {
   51: 		srv->fdwaitqueue->size  = 16;
   52: 		srv->fdwaitqueue->ptr   = malloc(sizeof(*(srv->fdwaitqueue->ptr)) * srv->fdwaitqueue->size);
   53: 		force_assert(NULL != srv->fdwaitqueue->ptr);
   54: 	} else if (srv->fdwaitqueue->used == srv->fdwaitqueue->size) {
   55: 		srv->fdwaitqueue->size += 16;
   56: 		srv->fdwaitqueue->ptr   = realloc(srv->fdwaitqueue->ptr, sizeof(*(srv->fdwaitqueue->ptr)) * srv->fdwaitqueue->size);
   57: 		force_assert(NULL != srv->fdwaitqueue->ptr);
   58: 	}
   59: 
   60: 	srv->fdwaitqueue->ptr[srv->fdwaitqueue->used++] = con;
   61: 
   62: 	return 0;
   63: }
   64: 
   65: void fdwaitqueue_free(server *srv, connections *fdwaitqueue) {
   66: 	UNUSED(srv);
   67: 	free(fdwaitqueue->ptr);
   68: 	free(fdwaitqueue);
   69: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>