/*************************************************************************
* *
* Modulo per la gestione di code di thread *
* *
* realizzato dal Gruppo 17 di Lab2 Anno Accademico 1995/96 *
* *
* Lorenzo Claudio Valerio Riccardo Emiliano *
* Coronati Lanconelli Paolini Solmi Trentini *
* *
**************************************************************************/
/*
* NOTA: le seguenti funzioni sono state realizzate come macro per motivi
* di efficienza (vedi msgqueue.e):
* headThread()
* insertThread()
* ins1Thread()
* removeThread()
*/
#include "../h/const.h"
#include "../h/types.h"
#include "../h/thrqueue.h"
#include "../h/queue.e"
/* definizione tabella dei thread e puntatore alla lista dei thread liberi */
HIDDEN thr_t thrTable[MAXTHREAD];
HIDDEN thr_t *thrfp;
void
initThread()
{
thrfp = (thr_t *) initQueue(thrTable, MAXTHREAD, sizeof(thr_t));
}
thr_t *
AllocThread()
{
return (thr_t *) AllocQueue(&thrfp);
}
void
FreeThread(p)
thr_t *p;
{
freeQueue(p, &thrfp);
}