odyssey/machine/mm.h

46 lines
659 B
C

#ifndef MM_H_
#define MM_H_
/*
* machinarium.
*
* cooperative multitasking engine.
*/
typedef struct mm_t mm_t;
struct mm_t {
int online;
/*mmscheduler scheduler;*/
uv_loop_t loop;
uv_prepare_t prepare;
};
/*
static inline mmfiber*
mm_current(mm *f) {
return f->scheduler.current;
}
static inline void
mm_wakeup(mm *f, mmfiber *fiber)
{
mm_scheduler_set(fiber, MM_FREADY);
(void)f;
}
static inline void
mm_wakeup_waiters(mm *f, mmfiber *fiber)
{
mmfiber *waiter;
mmlist *i;
mm_listforeach(&fiber->waiters, i) {
waiter = mm_container_of(i, mmfiber, link_wait);
mm_scheduler_set(waiter, MM_FREADY);
}
(void)f;
}
*/
#endif