* main loop
*/
-typedef enum {
- MRP_SUPER_EVENT_NONE = 0x0,
- MRP_SUPER_EVENT_IO = 0x1,
- MRP_SUPER_EVENT_TIMER = 0x2,
- MRP_SUPER_EVENT_DEFER = 0x4,
-} super_event_t;
-
-
struct mrp_mainloop_s {
int epollfd; /* our epoll descriptor */
struct epoll_event *events; /* epoll event buffer */
mrp_superloop_ops_t *super_ops; /* superloop options */
void *super_data; /* superloop glue data */
- super_event_t super_events; /* pending superloop events */
void *iow; /* superloop epollfd watch */
void *timer; /* superloop timer */
void *work; /* superloop deferred work */
MRP_UNUSED(fd);
MRP_UNUSED(events);
- ml->super_events |= MRP_SUPER_EVENT_IO;
ops->mod_defer(ml->super_data, ml->work, TRUE);
}
MRP_UNUSED(super_data);
MRP_UNUSED(id);
- ml->super_events |= MRP_SUPER_EVENT_TIMER;
ops->mod_defer(ml->super_data, ml->work, TRUE);
}