summaryrefslogtreecommitdiff
path: root/auto/unix
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2015-11-17 19:01:41 +0300
committerValentin Bartenev <vbart@nginx.com>2015-11-17 19:01:41 +0300
commitd862ae8e6854501c6692e84bd5708150f2a1d9a1 (patch)
tree5e127d4066ab9ce5b4e8b21079f91bafd06c016c /auto/unix
parent906c4462f83fb90c8abef5c89f8b689ace83c6af (diff)
downloadnginx-d862ae8e6854501c6692e84bd5708150f2a1d9a1.tar.gz
Used the pwritev() syscall for writing files where possible.
It is more effective, because it doesn't require a separate lseek().
Diffstat (limited to 'auto/unix')
-rwxr-xr-xauto/unix16
1 files changed, 16 insertions, 0 deletions
diff --git a/auto/unix b/auto/unix
index b7b7a25a5..7bfca8f3a 100755
--- a/auto/unix
+++ b/auto/unix
@@ -589,6 +589,22 @@ ngx_feature_test="char buf[1]; ssize_t n; n = pwrite(1, buf, 1, 0);
. auto/feature
+# pwritev() was introduced in FreeBSD 6 and Linux 2.6.30, glibc 2.10
+
+ngx_feature="pwritev()"
+ngx_feature_name="NGX_HAVE_PWRITEV"
+ngx_feature_run=no
+ngx_feature_incs='#include <sys/uio.h>'
+ngx_feature_path=
+ngx_feature_libs=
+ngx_feature_test="char buf[1]; struct iovec vec[1]; ssize_t n;
+ vec[0].iov_base = buf;
+ vec[0].iov_len = 1;
+ n = pwritev(1, vec, 1, 0);
+ if (n == -1) return 1"
+. auto/feature
+
+
ngx_feature="sys_nerr"
ngx_feature_name="NGX_SYS_NERR"
ngx_feature_run=value