comparison src/event/ngx_event.h @ 1:d220029ac7f3

nginx-0.0.1-2002-08-15-21:20:26 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 15 Aug 2002 17:20:26 +0000
parents 4eff17414a43
children 34a521b1a148
comparison
equal deleted inserted replaced
0:4eff17414a43 1:d220029ac7f3
14 int (*event_handler)(ngx_event_t *ev); 14 int (*event_handler)(ngx_event_t *ev);
15 int (*close_handler)(ngx_event_t *ev); 15 int (*close_handler)(ngx_event_t *ev);
16 void *context; 16 void *context;
17 char *action; 17 char *action;
18 18
19 ngx_event_t *prev; /* queue in select(), poll() */ 19 ngx_event_t *prev; /* queue in select(), poll(), mutex(), */
20 ngx_event_t *next; 20 ngx_event_t *next; /* aio_read(), aio_write() */
21 21
22 int (*timer_handler)(ngx_event_t *ev); 22 int (*timer_handler)(ngx_event_t *ev);
23 ngx_event_t *timer_prev; 23 ngx_event_t *timer_prev;
24 ngx_event_t *timer_next; 24 ngx_event_t *timer_next;
25 25
50 #if (HAVE_DEFERRED_ACCEPT) 50 #if (HAVE_DEFERRED_ACCEPT)
51 unsigned accept_filter:1; 51 unsigned accept_filter:1;
52 #endif 52 #endif
53 #if (HAVE_KQUEUE) 53 #if (HAVE_KQUEUE)
54 unsigned eof:1; 54 unsigned eof:1;
55 int errno; 55 int error;
56 #endif 56 #endif
57 }; 57 };
58 58
59 typedef enum { 59 typedef enum {
60 NGX_SELECT_EVENT = 0, 60 NGX_SELECT_EVENT = 0,
68 68
69 typedef struct { 69 typedef struct {
70 int (*add)(ngx_event_t *ev, int event, u_int flags); 70 int (*add)(ngx_event_t *ev, int event, u_int flags);
71 int (*del)(ngx_event_t *ev, int event); 71 int (*del)(ngx_event_t *ev, int event);
72 int (*process)(ngx_log_t *log); 72 int (*process)(ngx_log_t *log);
73 int (*read)(ngx_event_t *ev, char *buf, size_t size);
73 /* 74 /*
74 int (*read)(ngx_event_t *ev, char *buf, size_t size);
75 int (*write)(ngx_event_t *ev, char *buf, size_t size); 75 int (*write)(ngx_event_t *ev, char *buf, size_t size);
76 */ 76 */
77 } ngx_event_actions_t; 77 } ngx_event_actions_t;
78 78
79 /*
80
81 NGX_LEVEL_EVENT (default) select, poll, kqueue
82 requires to read whole data
83 NGX_ONESHOT_EVENT kqueue
84 NGX_CLEAR_EVENT kqueue
85
86 */
79 87
80 #if (HAVE_KQUEUE) 88 #if (HAVE_KQUEUE)
81 89
82 #define NGX_READ_EVENT EVFILT_READ 90 #define NGX_READ_EVENT EVFILT_READ
83 #define NGX_WRITE_EVENT EVFILT_WRITE 91 #define NGX_WRITE_EVENT EVFILT_WRITE
97 105
98 #endif 106 #endif
99 107
100 108
101 #if (USE_KQUEUE) 109 #if (USE_KQUEUE)
110
102 #define ngx_init_events ngx_kqueue_init 111 #define ngx_init_events ngx_kqueue_init
103 #define ngx_process_events ngx_kqueue_process_events 112 #define ngx_process_events ngx_kqueue_process_events
104 #define ngx_add_event ngx_kqueue_add_event 113 #define ngx_add_event ngx_kqueue_add_event
105 #define ngx_del_event ngx_kqueue_del_event 114 #define ngx_del_event ngx_kqueue_del_event
115 #define ngx_event_recv ngx_event_recv_core
116
106 #else 117 #else
118
107 #define ngx_init_events (ngx_event_init[ngx_event_type]) 119 #define ngx_init_events (ngx_event_init[ngx_event_type])
108 #define ngx_process_events ngx_event_actions.process 120 #define ngx_process_events ngx_event_actions.process
109 #define ngx_add_event ngx_event_actions.add 121 #define ngx_add_event ngx_event_actions.add
110 #define ngx_del_event ngx_event_actions.del 122 #define ngx_del_event ngx_event_actions.del
123 #define ngx_event_recv ngx_event_recv_core
124
111 #endif 125 #endif
112 126
113 127
114 extern ngx_event_t *ngx_read_events; 128 extern ngx_event_t *ngx_read_events;
115 extern ngx_event_t *ngx_write_events; 129 extern ngx_event_t *ngx_write_events;