Mercurial > hg > nginx-quic
view docs/GNUmakefile @ 4135:d8e24515176e
Fix of cpu hog in event pipe.
If client closed connection in ngx_event_pipe_write_to_downstream(), buffers
in the "out" chain were lost. This caused cpu hog if all available buffers
were in the "out" chain. Fix is to call ngx_chain_update_chains() before
checking return code of output filter to avoid loosing buffers in the "out"
chain.
Note that this situation (all available buffers in the "out" chain) isn't
normal, it should be prevented by busy buffers limit. Though right now it
may happen with complex protocols like fastcgi. This should be addressed
separately.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 20 Sep 2011 09:55:27 +0000 |
parents | d889195c8db4 |
children | b9dade63fcc2 |
line wrap: on
line source
VER= $(shell grep 'define NGINX_VERSION' src/core/nginx.h \ | sed -e 's/^.*\"\(.*\)\"/\1/') NGINX= nginx-$(VER) TEMP= tmp CP= $(HOME)/java define XSLScript java -cp $(CP)/xsls/saxon.jar:$(CP)/xsls/xsls.jar \ com.pault.StyleSheet \ -x com.pault.XX -y com.pault.XX \ $(1) docs/xsls/dump.xsls \ | sed 's/ *$$//;/^ *$$/N;/\n *$$/D' > $(2) if [ ! -s $(2) ]; then rm $(2); fi; test -s $(2) endef define XSLT xmllint --noout --valid $2 xsltproc -o $3 \ $(shell echo $4 \\ | sed -e "s/\([^= ]*\)=\([^= ]*\)/--param \1 \"'\2'\"/g") \ $1 $2 endef all: changes html changes: $(TEMP)/$(NGINX)/CHANGES.ru \ $(TEMP)/$(NGINX)/CHANGES $(TEMP)/$(NGINX)/CHANGES.ru: docs/xml/nginx/changes.xml \ docs/xml/change_log_conf.xml \ docs/xslt/changes.xslt test -d $(TEMP)/$(NGINX) || mkdir -p $(TEMP)/$(NGINX) xsltproc --stringparam lang ru \ -o $(TEMP)/$(NGINX)/CHANGES.ru \ docs/xslt/changes.xslt docs/xml/nginx/changes.xml $(TEMP)/$(NGINX)/CHANGES: docs/xml/nginx/changes.xml \ docs/xml/change_log_conf.xml \ docs/xslt/changes.xslt test -d $(TEMP)/$(NGINX) || mkdir -p $(TEMP)/$(NGINX) xsltproc --stringparam lang en \ -o $(TEMP)/$(NGINX)/CHANGES \ docs/xslt/changes.xslt docs/xml/nginx/changes.xml docs/xslt/changes.xslt: docs/xsls/changes.xsls $(call XSLScript, docs/xsls/changes.xsls, $@) html: \ docs/html/ngx_core_module.html \ docs/html/http/ngx_http_core_module.html \ docs/html/http/ngx_http_mp4_module.html docs/html/%.html: \ docs/xml/%.xml \ docs/xslt/module.xslt \ docs/dtd/module.dtd $(call XSLT, docs/xslt/module.xslt, $<, $@) docs/html/http/%.html: \ docs/xml/http/%.xml \ docs/xslt/module.xslt \ docs/dtd/module.dtd $(call XSLT, docs/xslt/module.xslt, $<, $@) docs/xslt/module.xslt: \ docs/xslt/directive.xslt \ docs/xslt/content.xslt docs/xslt/%.xslt: docs/xsls/%.xsls $(call XSLScript, $<, $@)