]> jfr.im git - irc/quakenet/newserv.git/blame - core/schedulealloc.c
merge
[irc/quakenet/newserv.git] / core / schedulealloc.c
CommitLineData
2c5db955
CP
1/* schedulealloc.c */
2
3#include "schedule.h"
4#include <stdlib.h>
5
6#define ALLOCUNIT 100
7
8schedule *freescheds;
9
10void initschedulealloc() {
11 freescheds=NULL;
12}
13
14schedule *getschedule() {
15 int i;
16 schedule *sp;
17
18 if (freescheds==NULL) {
19 freescheds=(schedule *)malloc(ALLOCUNIT*sizeof(schedule));
20 for (i=0;i<ALLOCUNIT-1;i++) {
21 freescheds[i].callbackparam=(void *)&(freescheds[i+1]);
22 }
23 freescheds[ALLOCUNIT-1].callbackparam=NULL;
24 }
25
26 sp=freescheds;
27 freescheds=(schedule *)sp->callbackparam;
28
29 return sp;
30}
31
32void freeschedule(schedule *sp) {
33 sp->callbackparam=(void *)freescheds;
34 sp->callback=NULL;
35 freescheds=sp;
36}
37