odyssey/lib/ft_fiber.c

34 lines
510 B
C
Raw Normal View History

2016-11-08 12:03:58 +00:00
/*
2016-11-08 12:16:12 +00:00
* fluent.
2016-11-08 12:03:58 +00:00
*
* Cooperative multitasking engine.
*/
#include <fluent_private.h>
void ft_fiber_init(ftfiber *fiber)
{
memset(fiber, 0, sizeof(ftfiber));
fiber->state = FT_FNEW;
ft_listinit(&fiber->link);
}
ftfiber*
ft_fiber_alloc(int size_stack)
{
int size = sizeof(ftfiber) + size_stack;
ftfiber *fiber = malloc(size);
if (fiber == NULL)
return NULL;
ft_fiber_init(fiber);
memset(ft_fiber_stackof(fiber), 0, size_stack);
return fiber;
}
void
ft_fiber_free(ftfiber *fiber)
{
free(fiber);
}