From 220b940e6657409b8bf602d905960e5fb322cfad Mon Sep 17 00:00:00 2001 From: "Yichun Zhang (agentzh)" Date: Thu, 7 Jan 2016 12:34:39 -0800 Subject: [PATCH] bugfix: the ./configure options --with-dtrace-probes and --with-stream did not work together. --- patches/nginx-1.9.7-dtrace.patch | 89 +++++++++++++++++++------------- 1 file changed, 52 insertions(+), 37 deletions(-) diff --git a/patches/nginx-1.9.7-dtrace.patch b/patches/nginx-1.9.7-dtrace.patch index 5a8bd0e..1aec4f3 100644 --- a/patches/nginx-1.9.7-dtrace.patch +++ b/patches/nginx-1.9.7-dtrace.patch @@ -451,21 +451,6 @@ index ef4a647..49bb30b 100644 return p; } -diff --git a/src/core/ngx_thread_pool.h b/src/core/ngx_thread_pool.h -index 5e5adf6..5999525 100644 ---- a/src/core/ngx_thread_pool.h -+++ b/src/core/ngx_thread_pool.h -@@ -23,7 +23,10 @@ struct ngx_thread_task_s { - }; - - -+#ifndef NGX_DEFINE_THREAD_POOL_T -+#define NGX_DEFINE_THREAD_POOL_T 1 - typedef struct ngx_thread_pool_s ngx_thread_pool_t; -+#endif - - - ngx_thread_pool_t *ngx_thread_pool_add(ngx_conf_t *cf, ngx_str_t *name); diff --git a/src/dtrace/nginx.stp b/src/dtrace/nginx.stp new file mode 100644 index 0000000..e824daf @@ -831,10 +816,10 @@ index 0000000..1bca4cf + diff --git a/src/event/ngx_event_probe.h b/src/event/ngx_event_probe.h new file mode 100644 -index 0000000..9fa2a82 +index 0000000..5aa0397 --- /dev/null +++ b/src/event/ngx_event_probe.h -@@ -0,0 +1,40 @@ +@@ -0,0 +1,33 @@ +#ifndef _NGX_EVENT_PROBE_H_INCLUDED_ +#define _NGX_EVENT_PROBE_H_INCLUDED_ + @@ -846,13 +831,6 @@ index 0000000..9fa2a82 + +#if (NGX_DTRACE) + -+#if (NGX_THREADS) -+# ifndef NGX_DEFINE_THREAD_POOL_T -+# define NGX_DEFINE_THREAD_POOL_T 1 -+typedef struct ngx_thread_pool_s ngx_thread_pool_t; -+# endif -+#endif -+ +#include +#include + @@ -876,10 +854,18 @@ index 0000000..9fa2a82 + +#endif /* _NGX_EVENT_PROBE_H_INCLUDED_ */ diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c -index 8f547b2..e12a51e 100644 +index 8f547b2..6e77465 100644 --- a/src/event/ngx_event_timer.c +++ b/src/event/ngx_event_timer.c -@@ -91,6 +91,8 @@ ngx_event_expire_timers(void) +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + + ngx_rbtree_t ngx_event_timer_rbtree; +@@ -91,6 +92,8 @@ ngx_event_expire_timers(void) ev->timedout = 1; @@ -888,32 +874,61 @@ index 8f547b2..e12a51e 100644 ev->handler(ev); } } +@@ -136,3 +139,19 @@ ngx_event_cancel_timers(void) + ev->handler(ev); + } + } ++ ++ ++#if (NGX_DTRACE) ++void ++ngx_event_probe_timer_add_helper(ngx_event_t *ev, ngx_msec_t timer) ++{ ++ ngx_event_probe_timer_add(ev, timer); ++} ++ ++ ++void ++ngx_event_probe_timer_del_helper(ngx_event_t *ev) ++{ ++ ngx_event_probe_timer_del(ev); ++} ++#endif diff --git a/src/event/ngx_event_timer.h b/src/event/ngx_event_timer.h -index 99f8a48..79c3fa0 100644 +index 99f8a48..8bc619a 100644 --- a/src/event/ngx_event_timer.h +++ b/src/event/ngx_event_timer.h -@@ -12,6 +12,7 @@ - #include - #include - #include -+#include +@@ -25,12 +25,23 @@ void ngx_event_expire_timers(void); + void ngx_event_cancel_timers(void); + + ++#if (NGX_DTRACE) ++void ngx_event_probe_timer_add_helper(ngx_event_t *ev, ++ ngx_msec_t timer); ++void ngx_event_probe_timer_del_helper(ngx_event_t *ev); ++#endif ++ ++ + extern ngx_rbtree_t ngx_event_timer_rbtree; - #define NGX_TIMER_INFINITE (ngx_msec_t) -1 -@@ -31,6 +32,8 @@ extern ngx_rbtree_t ngx_event_timer_rbtree; static ngx_inline void ngx_event_del_timer(ngx_event_t *ev) { -+ ngx_event_probe_timer_del(ev); ++#if (NGX_DTRACE) ++ ngx_event_probe_timer_del_helper(ev); ++#endif + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, "event timer del: %d: %M", ngx_event_ident(ev->data), ev->timer.key); -@@ -77,6 +80,8 @@ ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) +@@ -77,6 +88,10 @@ ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) ev->timer.key = key; -+ ngx_event_probe_timer_add(ev, timer); ++#if (NGX_DTRACE) ++ ngx_event_probe_timer_add_helper(ev, timer); ++#endif + ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0, "event timer add: %d: %M:%M",