view src/event/ngx_event_posted.h @ 373:018569a8f09c

nginx-0.0.7-2004-06-30-19:30:41 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 30 Jun 2004 15:30:41 +0000
parents c9fdfccebc49
children 213f17e9f776
line wrap: on
line source

#ifndef _NGX_EVENT_POSTED_H_INCLUDED_
#define _NGX_EVENT_POSTED_H_INCLUDED_


#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_event.h>


typedef struct ngx_posted_events_s  ngx_posted_event_t;

struct ngx_posted_events_s {
    ngx_event_t         *event;
    ngx_posted_event_t  *next;

    unsigned             instance:1;
    unsigned             ready:1;
    unsigned             timedout:1;
    unsigned             complete:1;
};


#define ngx_post_event(ev)                                                    \
            if (!ev->posted) {                                                \
                ev->next = (ngx_event_t *) ngx_posted_events;                 \
                ngx_posted_events = ev;                                       \
                ev->posted = 1;                                               \
            }

/*
\
   ngx_log_debug3(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0, \
               "POST: %08X %08X %08X", ngx_posted_events, \
               (ngx_posted_events ? ngx_posted_events->next: 0), \
               ((ngx_posted_events && ngx_posted_events->next) ? \
                               ngx_posted_events->next->next: 0)); \
\
*/

/*
\
{ int i; ngx_event_t *e;\
  e = (ngx_event_t *) ngx_posted_events; \
for (i = 0; e && i < 10; e = e->next, i++) { \
   ngx_log_debug2(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0, \
                  "POST: %d %08X", i, e);\
}} \
\
*/


void ngx_event_process_posted(ngx_cycle_t *cycle);

extern ngx_thread_volatile ngx_event_t  *ngx_posted_events;


#if (NGX_THREADS)
ngx_int_t ngx_event_thread_process_posted(ngx_cycle_t *cycle);

extern ngx_mutex_t                      *ngx_posted_events_mutex;
extern ngx_cond_t                       *ngx_posted_events_cv;
#endif


#endif /* _NGX_EVENT_POSTED_H_INCLUDED_ */