Hello All,
I am currently implementing a response header filter that triggers one or more 
subrequests conditionally based on the status of the parent response.

I want to introduce some delay between the checking of the response and the 
triggering of the subrequest, but I do not want to block the worker thread.

So far I have allocated an event within the main request's pool, added a timer 
with my desired delay, and attached a callback that does two things.

  1.  triggers a subrequest as desired
  2.  proceeds to call the next response header filter

In the meantime, after posting the event my handler returns NGX_OK.

This is not working at all. Shortly after my filter returns NGX_OK the response 
is finalized, and the pool is deallocated. When the timer wakes up a segfault 
occurs in the worker process (in ngx_event_del_timer). Even if I allocate the 
event in a separate pool that outlives the request it is still not defined what 
happens when I try to trigger a subrequest on a request that has been finalized.

My question is how can I make the finalization of the request contingent on the 
associated/posted event being handled first?

OR, is there another facility for implementing non blocking delay that I can 
use?

Thanks,
Ava

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-devel

Reply via email to