Remove list_fibers API

- Remove redundant API
  - superceded by get_fiber_list()
This commit is contained in:
Joe Finney 2020-03-25 16:28:20 +00:00
parent c42776ced5
commit 219feb8511
1 changed files with 0 additions and 38 deletions

View File

@ -67,44 +67,6 @@ static EventModel *messageBus = NULL;
// Array of components which are iterated during idle thread execution.
static MicroBitComponent* idleThreadComponents[MICROBIT_IDLE_COMPONENTS];
static void get_fibers_from(Fiber ***dest, int *sum, Fiber *queue)
{
if (queue && queue->prev)
microbit_panic(MICROBIT_HEAP_ERROR);
while (queue) {
if (*dest)
*(*dest)++ = queue;
(*sum)++;
queue = queue->next;
}
}
/**
* Return all current fibers.
*
* @param dest If non-null, it points to an array of pointers to fibers to store results in.
*
* @return the number of fibers (potentially) stored
*/
int list_fibers(Fiber **dest)
{
int sum = 0;
// interrupts might move fibers between queues, but should not create new ones
__disable_irq();
get_fibers_from(&dest, &sum, runQueue);
get_fibers_from(&dest, &sum, sleepQueue);
get_fibers_from(&dest, &sum, waitQueue);
__enable_irq();
// idleFiber is used to start event handlers using invoke(),
// so it may in fact have the user_data set if in FOB context
if (dest)
*dest++ = idleFiber;
sum++;
return sum;
}
/**
* Utility function to add the currenty running fiber to the given queue.
*