# HG changeset patch # User Valentin Bartenev # Date 1407928305 -14400 # Node ID b63e829621ab976e5f6c676fa702281fe5492e18 # Parent a6e83ac70af9acf4ef0ad55d86b61ce07ce55c5d Generalized definitions of the number of preallocated iovec's. No functional changes. diff --git a/src/os/unix/ngx_darwin_sendfile_chain.c b/src/os/unix/ngx_darwin_sendfile_chain.c --- a/src/os/unix/ngx_darwin_sendfile_chain.c +++ b/src/os/unix/ngx_darwin_sendfile_chain.c @@ -27,15 +27,6 @@ */ -#if (IOV_MAX > 64) -#define NGX_HEADERS 64 -#define NGX_TRAILERS 64 -#else -#define NGX_HEADERS IOV_MAX -#define NGX_TRAILERS IOV_MAX -#endif - - ngx_chain_t * ngx_darwin_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) { @@ -50,7 +41,9 @@ ngx_darwin_sendfile_chain(ngx_connection ngx_event_t *wev; ngx_chain_t *cl; struct sf_hdtr hdtr; - struct iovec *iov, headers[NGX_HEADERS], trailers[NGX_TRAILERS]; + struct iovec *iov; + struct iovec headers[NGX_IOVS_PREALLOCATE]; + struct iovec trailers[NGX_IOVS_PREALLOCATE]; wev = c->write; @@ -79,12 +72,12 @@ ngx_darwin_sendfile_chain(ngx_connection header.elts = headers; header.size = sizeof(struct iovec); - header.nalloc = NGX_HEADERS; + header.nalloc = NGX_IOVS_PREALLOCATE; header.pool = c->pool; trailer.elts = trailers; trailer.size = sizeof(struct iovec); - trailer.nalloc = NGX_TRAILERS; + trailer.nalloc = NGX_IOVS_PREALLOCATE; trailer.pool = c->pool; for ( ;; ) { diff --git a/src/os/unix/ngx_freebsd_sendfile_chain.c b/src/os/unix/ngx_freebsd_sendfile_chain.c --- a/src/os/unix/ngx_freebsd_sendfile_chain.c +++ b/src/os/unix/ngx_freebsd_sendfile_chain.c @@ -29,15 +29,6 @@ */ -#if (IOV_MAX > 64) -#define NGX_HEADERS 64 -#define NGX_TRAILERS 64 -#else -#define NGX_HEADERS IOV_MAX -#define NGX_TRAILERS IOV_MAX -#endif - - ngx_chain_t * ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) { @@ -52,7 +43,9 @@ ngx_freebsd_sendfile_chain(ngx_connectio ngx_event_t *wev; ngx_chain_t *cl; struct sf_hdtr hdtr; - struct iovec *iov, headers[NGX_HEADERS], trailers[NGX_TRAILERS]; + struct iovec *iov; + struct iovec headers[NGX_IOVS_PREALLOCATE]; + struct iovec trailers[NGX_IOVS_PREALLOCATE]; wev = c->write; @@ -83,12 +76,12 @@ ngx_freebsd_sendfile_chain(ngx_connectio header.elts = headers; header.size = sizeof(struct iovec); - header.nalloc = NGX_HEADERS; + header.nalloc = NGX_IOVS_PREALLOCATE; header.pool = c->pool; trailer.elts = trailers; trailer.size = sizeof(struct iovec); - trailer.nalloc = NGX_TRAILERS; + trailer.nalloc = NGX_IOVS_PREALLOCATE; trailer.pool = c->pool; for ( ;; ) { diff --git a/src/os/unix/ngx_linux_sendfile_chain.c b/src/os/unix/ngx_linux_sendfile_chain.c --- a/src/os/unix/ngx_linux_sendfile_chain.c +++ b/src/os/unix/ngx_linux_sendfile_chain.c @@ -27,13 +27,6 @@ #define NGX_SENDFILE_MAXSIZE 2147483647L -#if (IOV_MAX > 64) -#define NGX_HEADERS 64 -#else -#define NGX_HEADERS IOV_MAX -#endif - - ngx_chain_t * ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) { @@ -47,7 +40,7 @@ ngx_linux_sendfile_chain(ngx_connection_ ngx_array_t header; ngx_event_t *wev; ngx_chain_t *cl; - struct iovec *iov, headers[NGX_HEADERS]; + struct iovec *iov, headers[NGX_IOVS_PREALLOCATE]; #if (NGX_HAVE_SENDFILE64) off_t offset; #else @@ -72,7 +65,7 @@ ngx_linux_sendfile_chain(ngx_connection_ header.elts = headers; header.size = sizeof(struct iovec); - header.nalloc = NGX_HEADERS; + header.nalloc = NGX_IOVS_PREALLOCATE; header.pool = c->pool; for ( ;; ) { diff --git a/src/os/unix/ngx_os.h b/src/os/unix/ngx_os.h --- a/src/os/unix/ngx_os.h +++ b/src/os/unix/ngx_os.h @@ -56,6 +56,13 @@ ngx_chain_t *ngx_aio_write_chain(ngx_con #endif +#if (IOV_MAX > 64) +#define NGX_IOVS_PREALLOCATE 64 +#else +#define NGX_IOVS_PREALLOCATE IOV_MAX +#endif + + extern ngx_os_io_t ngx_os_io; extern ngx_int_t ngx_ncpu; extern ngx_int_t ngx_max_sockets; diff --git a/src/os/unix/ngx_readv_chain.c b/src/os/unix/ngx_readv_chain.c --- a/src/os/unix/ngx_readv_chain.c +++ b/src/os/unix/ngx_readv_chain.c @@ -10,13 +10,6 @@ #include -#if (IOV_MAX > 64) -#define NGX_IOVS 64 -#else -#define NGX_IOVS IOV_MAX -#endif - - ssize_t ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain) { @@ -25,7 +18,7 @@ ngx_readv_chain(ngx_connection_t *c, ngx ngx_err_t err; ngx_array_t vec; ngx_event_t *rev; - struct iovec *iov, iovs[NGX_IOVS]; + struct iovec *iov, iovs[NGX_IOVS_PREALLOCATE]; rev = c->read; @@ -67,7 +60,7 @@ ngx_readv_chain(ngx_connection_t *c, ngx vec.elts = iovs; vec.nelts = 0; vec.size = sizeof(struct iovec); - vec.nalloc = NGX_IOVS; + vec.nalloc = NGX_IOVS_PREALLOCATE; vec.pool = c->pool; /* coalesce the neighbouring bufs */ diff --git a/src/os/unix/ngx_solaris_sendfilev_chain.c b/src/os/unix/ngx_solaris_sendfilev_chain.c --- a/src/os/unix/ngx_solaris_sendfilev_chain.c +++ b/src/os/unix/ngx_solaris_sendfilev_chain.c @@ -35,12 +35,7 @@ ngx_chain_t *ngx_solaris_sendfilev_chain #endif -#if (IOV_MAX > 64) -#define NGX_SENDFILEVECS 64 -#else -#define NGX_SENDFILEVECS IOV_MAX -#endif - +#define NGX_SENDFILEVECS NGX_IOVS_PREALLOCATE ngx_chain_t * diff --git a/src/os/unix/ngx_writev_chain.c b/src/os/unix/ngx_writev_chain.c --- a/src/os/unix/ngx_writev_chain.c +++ b/src/os/unix/ngx_writev_chain.c @@ -10,13 +10,6 @@ #include -#if (IOV_MAX > 64) -#define NGX_IOVS 64 -#else -#define NGX_IOVS IOV_MAX -#endif - - ngx_chain_t * ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) { @@ -28,7 +21,7 @@ ngx_writev_chain(ngx_connection_t *c, ng ngx_array_t vec; ngx_chain_t *cl; ngx_event_t *wev; - struct iovec *iov, iovs[NGX_IOVS]; + struct iovec *iov, iovs[NGX_IOVS_PREALLOCATE]; wev = c->write; @@ -57,7 +50,7 @@ ngx_writev_chain(ngx_connection_t *c, ng vec.elts = iovs; vec.size = sizeof(struct iovec); - vec.nalloc = NGX_IOVS; + vec.nalloc = NGX_IOVS_PREALLOCATE; vec.pool = c->pool; for ( ;; ) {