mirror of https://github.com/yandex/odyssey.git
29 lines
631 B
C
29 lines
631 B
C
![]() |
#ifndef MM_EVENT_MGR_H
|
||
|
#define MM_EVENT_MGR_H
|
||
|
|
||
|
/*
|
||
|
* machinarium.
|
||
|
*
|
||
|
* cooperative multitasking engine.
|
||
|
*/
|
||
|
|
||
|
typedef struct mm_eventmgr_t mm_eventmgr_t;
|
||
|
|
||
|
struct mm_eventmgr_t
|
||
|
{
|
||
|
mm_fd_t fd;
|
||
|
pthread_spinlock_t lock;
|
||
|
mm_list_t list_ready;
|
||
|
mm_list_t list_wait;
|
||
|
int count_ready;
|
||
|
int count_wait;
|
||
|
};
|
||
|
|
||
|
int mm_eventmgr_init(mm_eventmgr_t*, mm_loop_t*);
|
||
|
void mm_eventmgr_free(mm_eventmgr_t*, mm_loop_t*);
|
||
|
void mm_eventmgr_wakeup(mm_eventmgr_t*);
|
||
|
int mm_eventmgr_wait(mm_eventmgr_t*, mm_event_t*, uint32_t);
|
||
|
void mm_eventmgr_signal(mm_event_t*);
|
||
|
|
||
|
#endif /* MM_EVENT_MGR_H */
|