comparison src/event/ngx_event_posted.h @ 6060:3d4730eada9c

Events: made posted events macros safe.
author Valentin Bartenev <vbart@nginx.com>
date Fri, 27 Mar 2015 19:57:15 +0300
parents 3f5f0ab59b35
children 9d2ad2fb4423
comparison
equal deleted inserted replaced
6059:c81d79a7befd 6060:3d4730eada9c
14 #include <ngx_event.h> 14 #include <ngx_event.h>
15 15
16 16
17 #define ngx_post_event(ev, q) \ 17 #define ngx_post_event(ev, q) \
18 \ 18 \
19 if (!ev->posted) { \ 19 if (!(ev)->posted) { \
20 ev->posted = 1; \ 20 (ev)->posted = 1; \
21 ngx_queue_insert_tail(q, &ev->queue); \ 21 ngx_queue_insert_tail(q, &(ev)->queue); \
22 \ 22 \
23 ngx_log_debug1(NGX_LOG_DEBUG_CORE, ev->log, 0, "post event %p", ev); \ 23 ngx_log_debug1(NGX_LOG_DEBUG_CORE, (ev)->log, 0, "post event %p", ev);\
24 \ 24 \
25 } else { \ 25 } else { \
26 ngx_log_debug1(NGX_LOG_DEBUG_CORE, ev->log, 0, \ 26 ngx_log_debug1(NGX_LOG_DEBUG_CORE, (ev)->log, 0, \
27 "update posted event %p", ev); \ 27 "update posted event %p", ev); \
28 } 28 }
29 29
30 30
31 #define ngx_delete_posted_event(ev) \ 31 #define ngx_delete_posted_event(ev) \
32 \ 32 \
33 ev->posted = 0; \ 33 (ev)->posted = 0; \
34 ngx_queue_remove(&ev->queue); \ 34 ngx_queue_remove(&(ev)->queue); \
35 \ 35 \
36 ngx_log_debug1(NGX_LOG_DEBUG_CORE, ev->log, 0, \ 36 ngx_log_debug1(NGX_LOG_DEBUG_CORE, (ev)->log, 0, \
37 "delete posted event %p", ev); 37 "delete posted event %p", ev);
38 38
39 39
40 40
41 void ngx_event_process_posted(ngx_cycle_t *cycle, ngx_queue_t *posted); 41 void ngx_event_process_posted(ngx_cycle_t *cycle, ngx_queue_t *posted);