diff src/event/ngx_event.h @ 53:d1e42f1b8fd4

nginx-0.0.1-2003-01-27-00:08:14 import
author Igor Sysoev <igor@sysoev.ru>
date Sun, 26 Jan 2003 21:08:14 +0000
parents b288069a8696
children 27b628ef907e
line wrap: on
line diff
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -56,6 +56,7 @@ struct ngx_event_s {
     unsigned         ready:1;
     unsigned         timedout:1;
     unsigned         blocked:1;
+    unsigned         timer_set:1;
 
     unsigned         process:1;
     unsigned         read_discarded:1;
@@ -69,6 +70,17 @@ struct ngx_event_s {
     unsigned         eof:1;
     int              error;
 #endif
+
+#if 0
+    void            *thr_ctx;   /* event thread context if $(CC) doesn't
+                                   understand __thread declaration
+                                   and pthread_getspecific() is too costly */
+
+#if (NGX_EVENT_T_PADDING)
+    int              padding[NGX_EVENT_T_PADDING];  /* event should not cross
+                                                       cache line in SMP */
+#endif
+#endif
 };
 
 typedef enum {
@@ -96,20 +108,24 @@ typedef struct {
 } ngx_event_actions_t;
 
 
-/*
-NGX_LEVEL_EVENT (default)  select, poll, /dev/poll, kqueue
-                                requires to read whole data
-NGX_ONESHOT_EVENT          select, poll, /dev/poll(*), kqueue, epoll(*)
-                           (*) - additional syscall
-NGX_CLEAR_EVENT            kqueue, epoll
-NGX_AIO_EVENT              overlapped, aio_read, aioread
-                                no need to add or delete events
+/* Event filter requires to read/write the whole data -
+   select, poll, /dev/poll, kqueue. */
+#define NGX_HAVE_LEVEL_EVENT    1
+/* Event filter deleted after notification - select, poll, kqueue.
+   /dev/poll, epoll implemetned with additional syscall */
+#define NGX_HAVE_ONESHOT_EVENT  2
+/* Event filter notify only changes - kqueue, epoll */
+#define NGX_HAVE_CLEAR_EVENT    4
+/* No nedd to add or delete event filters - overlapped, aio_read, aioread */
+#define NGX_HAVE_AIO_EVENT      8
 
-NGX_CLOSE_EVENT            kqueue: kqueue deletes events for file that closed
-                           /dev/poll: need to flush events before closing
-*/
+/* Event filter is deleted before closing file. Has no meaning for select, poll.
+   kqueue:     kqueue deletes event filters for file that closed
+               so we need only to delete filters in user-level batch array
+   /dev/poll:  we need to flush POLLREMOVE event before closing file
+   epoll:      ??? */
+#define NGX_CLOSE_EVENT         1
 
-#define NGX_CLOSE_EVENT    1
 
 #if (HAVE_KQUEUE)
 
@@ -209,6 +225,7 @@ extern ngx_connection_t     *ngx_connect
 #if !(USE_KQUEUE)
 extern ngx_event_actions_t   ngx_event_actions;
 extern ngx_event_type_e      ngx_event_type;
+extern int                   ngx_event_flags;
 #endif