Center list

This commit is contained in:
Adrien Bourmault 2021-06-11 16:50:38 +02:00
parent f4711dab25
commit b73a9a8091
No known key found for this signature in database
GPG Key ID: 6EB408FE0ACEC664
2 changed files with 51 additions and 7 deletions

View File

@ -62,10 +62,13 @@ struct {
//
// Local threads
//
struct {
struct Center_t {
int x;
int y;
int z;
struct Center_t *next;
struct Center_t *prev;
} typedef Center_t;
struct {

View File

@ -38,6 +38,43 @@ pthread_t *SchedInit(SchedulerParams_t *parameters)
return parameters->id;
}
// -------------------------------------------------------------------------- //
// Center_t management functions //
// -------------------------------------------------------------------------- //
static inline void centerAssign(Center_t *center, int x, int y, int z)
{
center->x = x;
center->y = y;
center->z = z;
}
static inline Center_t *centerAdd(Center_t *anyCenter)
{
Center_t *newCenter = (Center_t*) malloc(sizeof(Center_t));
Center_t *temp = anyCenter->next;
anyCenter->next = newCenter;
newCenter->next = temp;
newCenter->prev = anyCenter;
if (temp) {
temp->prev = newCenter;
}
return newCenter;
}
static inline void centerRemove(Center_t *oldCenter)
{
Center_t *prev = oldCenter->prev;
Center_t *next = oldCenter->next;
prev->next = next->prev;
next->prev = prev->next;
free(oldCenter);
}
// -------------------------------------------------------------------------- //
// Scheduler thread main function //
// -------------------------------------------------------------------------- //
@ -45,11 +82,15 @@ static void *GreatScheduler(void *params)
{
// récupération des paramètres et annonce
SchedulerParams_t *parameters = (SchedulerParams_t*) params;
printLog("Scheduler id %lu: I'm alive!\n", *(parameters->id));
printLog("Scheduler id %lu: Bonjour I'm the boss !\n", *(parameters->id));
int ncpu = get_nprocs();
printLog("%d CPUs available.\n", ncpu);
Thread_t *workerArray = (Thread_t*) malloc(sizeof(Thread_t) * 3 * ncpu);
Center_t *centersArray = (Center_t*) malloc(sizeof(Center_t));
centerAssign(centersArray, -1, -1, -1);
return NULL;
}