odyssey/third_party/machinarium/sources/signal_mgr.h

33 lines
602 B
C

#ifndef MM_SIGNAL_MGR_H
#define MM_SIGNAL_MGR_H
/*
* machinarium.
*
* cooperative multitasking engine.
*/
typedef struct mm_signalrd mm_signalrd_t;
typedef struct mm_signalmgr mm_signalmgr_t;
struct mm_signalrd
{
mm_call_t call;
int signal;
mm_list_t link;
};
struct mm_signalmgr
{
mm_fd_t fd;
mm_list_t readers;
int readers_count;
};
int mm_signalmgr_init(mm_signalmgr_t*, mm_loop_t*);
void mm_signalmgr_free(mm_signalmgr_t*, mm_loop_t*);
int mm_signalmgr_set(mm_signalmgr_t*, sigset_t*);
int mm_signalmgr_wait(mm_signalmgr_t*, uint32_t);
#endif /* MM_SIGNAL_MGR_H */