comparison src/event/ngx_event.h @ 60:50186b49f2ad

nginx-0.0.1-2003-02-11-10:14:40 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 11 Feb 2003 07:14:40 +0000
parents e8cdc2989cee
children 36d2c25cc9bb
comparison
equal deleted inserted replaced
59:e8cdc2989cee 60:50186b49f2ad
104 #endif 104 #endif
105 #endif 105 #endif
106 }; 106 };
107 107
108 typedef enum { 108 typedef enum {
109 NGX_SELECT_EVENT = 0, 109 NGX_SELECT_EVENT_N = 0,
110 #if (HAVE_POLL) 110 #if (HAVE_POLL)
111 NGX_POLL_EVENT, 111 NGX_POLL_EVENT_N,
112 #endif 112 #endif
113 #if (HAVE_DEVPOLL) 113 #if (HAVE_DEVPOLL)
114 NGX_DEVPOLL_EVENT, 114 NGX_DEVPOLL_EVENT_N,
115 #endif 115 #endif
116 #if (HAVE_KQUEUE) 116 #if (HAVE_KQUEUE)
117 NGX_KQUEUE_EVENT, 117 NGX_KQUEUE_EVENT_N,
118 #endif 118 #endif
119 #if (HAVE_IOCP) 119 #if (HAVE_IOCP)
120 NGX_IOCP_EVENT, 120 NGX_IOCP_EVENT_N,
121 #endif 121 #endif
122 NGX_DUMMY_EVENT /* avoid comma at end of enumerator list */ 122 NGX_DUMMY_EVENT_N /* avoid comma at end of enumerator list */
123 } ngx_event_type_e ; 123 } ngx_event_type_e ;
124 124
125 typedef struct { 125 typedef struct {
126 int (*add)(ngx_event_t *ev, int event, u_int flags); 126 int (*add)(ngx_event_t *ev, int event, u_int flags);
127 int (*del)(ngx_event_t *ev, int event, u_int flags); 127 int (*del)(ngx_event_t *ev, int event, u_int flags);
143 #define NGX_HAVE_ONESHOT_EVENT 2 143 #define NGX_HAVE_ONESHOT_EVENT 2
144 144
145 /* Event filter notifies only changes and initial level - kqueue */ 145 /* Event filter notifies only changes and initial level - kqueue */
146 #define NGX_HAVE_CLEAR_EVENT 4 146 #define NGX_HAVE_CLEAR_EVENT 4
147 147
148 /* Event filter has kqueue features - eof flag, errno, available data, etc */
149 #define NGX_HAVE_KQUEUE_EVENT 8
150
148 /* Event filter notifies only changes (edgesi) but not initial level - epoll */ 151 /* Event filter notifies only changes (edgesi) but not initial level - epoll */
149 #define NGX_HAVE_EDGE_EVENT 8 152 #define NGX_HAVE_EDGE_EVENT 16
153
154 /* No need to add or delete event filters - rt signals */
155 #define NGX_HAVE_SIGIO_EVENT 32
150 156
151 /* No need to add or delete event filters - overlapped, aio_read, aioread */ 157 /* No need to add or delete event filters - overlapped, aio_read, aioread */
152 #define NGX_HAVE_AIO_EVENT 16 158 #define NGX_HAVE_AIO_EVENT 64
153 159
154 /* Need to add socket or halde only once - i/o completion port. 160 /* Need to add socket or halde only once - i/o completion port.
155 It also requires to set HAVE_AIO_EVENT and NGX_HAVE_AIO_EVENT */ 161 It also requires to set HAVE_AIO_EVENT and NGX_HAVE_AIO_EVENT */
156 #define NGX_HAVE_IOCP_EVENT 32 162 #define NGX_HAVE_IOCP_EVENT 128
157 163
158 /* Event filter is deleted before closing file. Has no meaning 164 /* Event filter is deleted before closing file. Has no meaning
159 for select, poll, epoll. 165 for select, poll, epoll.
160 166
161 kqueue: kqueue deletes event filters for file that closed 167 kqueue: kqueue deletes event filters for file that closed