Add kqueue event module. Code inspired by nginx. There are a lot of room for optimization here, this is just first working version.
This commit is contained in:
committed by
Justin Maggard
parent
aefe4dd0bf
commit
7ba9e52fc8
20
event.h
20
event.h
@@ -1,11 +1,24 @@
|
||||
#include "config.h"
|
||||
|
||||
#ifdef HAVE_KQUEUE
|
||||
#include <sys/types.h>
|
||||
#include <sys/event.h>
|
||||
#endif
|
||||
|
||||
struct event;
|
||||
|
||||
typedef enum {
|
||||
#ifdef HAVE_KQUEUE
|
||||
EVENT_READ = EVFILT_READ,
|
||||
EVENT_WRITE = EVFILT_WRITE,
|
||||
#else
|
||||
EVENT_READ,
|
||||
EVENT_WRITE,
|
||||
EVENT_RDWR,
|
||||
#endif
|
||||
} event_t;
|
||||
|
||||
#define EV_FLAG_CLOSING 0x00000001
|
||||
|
||||
typedef void event_process_t(struct event *);
|
||||
|
||||
struct event {
|
||||
@@ -17,14 +30,13 @@ struct event {
|
||||
};
|
||||
|
||||
typedef int event_module_add_t(struct event *);
|
||||
typedef int event_module_del_t(struct event *, int flags);
|
||||
typedef int event_module_init_t(void);
|
||||
typedef void event_module_fini_t(void);
|
||||
typedef int event_module_process_t(u_long);
|
||||
struct event_module {
|
||||
event_module_add_t *add;
|
||||
event_module_add_t *del;
|
||||
event_module_add_t *enable;
|
||||
event_module_add_t *disable;
|
||||
event_module_del_t *del;
|
||||
event_module_process_t *process;
|
||||
event_module_init_t *init;
|
||||
event_module_fini_t *fini;
|
||||
|
||||
Reference in New Issue
Block a user