thrqueue.c


/*************************************************************************
*                                                                        *
*   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);
}


[INDICE CODICE]