Mercurial > hg > Members > kono > Cerium
view TaskManager/Cell/CellTaskListInfo.cc @ 719:cafffff0f45a
clean up scheduler main loop
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 19 Dec 2009 10:34:43 +0900 |
parents | 8843edf37c0e |
children | 8a6f1fa038de |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include "CellTaskListInfo.h" #define NEXT_ADDR(addr, size) \ (TaskListPtr)((memaddr)(addr) + (size)) int CellTaskListInfo::extend_pool(int num) { TaskListPtr q = NULL; int unit_size; unit_size = (ROUND_UP_ALIGN(sizeof(TaskList), DEFAULT_ALIGNMENT)); posix_memalign((void**)&q, DEFAULT_ALIGNMENT, unit_size*(num+1)); if (q == NULL) { return -1; } q->next = taskListPool; taskListPool = q; /* Connect all free pack_list in the pool */ q = NEXT_ADDR(taskListPool, unit_size); // q = taskListPool + 1; for (; --num > 0; q = NEXT_ADDR(q, unit_size)) { q->next = NEXT_ADDR(q, unit_size); // q->next = q + 1; } q->next = freeTaskList; freeTaskList = NEXT_ADDR(taskListPool, unit_size); return 0; }