odyssey/third_party/machinarium/sources/signal_mgr.h

31 lines
604 B
C
Raw Normal View History

#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 *, sigset_t *);
int mm_signalmgr_wait(mm_signalmgr_t *, uint32_t);
#endif /* MM_SIGNAL_MGR_H */