mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
FreeBSD and Linux AIO support
This commit is contained in:
@@ -41,6 +41,7 @@ fi
|
||||
|
||||
if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
|
||||
have=NGX_HAVE_EPOLL . auto/have
|
||||
have=NGX_HAVE_EVENTFD . auto/have
|
||||
have=NGX_TEST_BUILD_EPOLL . auto/have
|
||||
EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
|
||||
CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
|
||||
|
||||
@@ -43,6 +43,7 @@ EVENT_AIO=NO
|
||||
|
||||
USE_THREADS=NO
|
||||
|
||||
NGX_FILE_AIO=NO
|
||||
NGX_IPV6=NO
|
||||
|
||||
HTTP=YES
|
||||
@@ -170,6 +171,7 @@ do
|
||||
#--with-threads=*) USE_THREADS="$value" ;;
|
||||
#--with-threads) USE_THREADS="pthreads" ;;
|
||||
|
||||
--with-file-aio) NGX_FILE_AIO=YES ;;
|
||||
--with-ipv6) NGX_IPV6=YES ;;
|
||||
|
||||
--without-http) HTTP=NO ;;
|
||||
@@ -305,6 +307,7 @@ cat << END
|
||||
--with-poll_module enable poll module
|
||||
--without-poll_module disable poll module
|
||||
|
||||
--with-file-aio enable file aio support
|
||||
--with-ipv6 enable ipv6 support
|
||||
|
||||
--with-http_ssl_module enable ngx_http_ssl_module
|
||||
|
||||
@@ -274,3 +274,43 @@ if [ $ngx_found != yes ]; then
|
||||
CORE_LIBS="$CORE_LIBS -lrt"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ $NGX_FILE_AIO = YES ]; then
|
||||
ngx_feature="kqueue AIO support"
|
||||
ngx_feature_name="NGX_HAVE_FILE_AIO"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <aio.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="int n; struct aiocb iocb;
|
||||
iocb.aio_sigevent.sigev_notify = SIGEV_KEVENT;
|
||||
n = aio_read(&iocb)"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
CORE_SRCS="$CORE_SRCS $FILE_AIO_SRCS"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ $NGX_FILE_AIO = YES ]; then
|
||||
ngx_feature="Linux AIO support"
|
||||
ngx_feature_name="NGX_HAVE_FILE_AIO"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <linux/aio_abi.h>
|
||||
#include <sys/syscall.h>"
|
||||
ngx_feature_path=
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="int n = SYS_eventfd;
|
||||
struct iocb iocb;
|
||||
iocb.aio_lio_opcode = IOCB_CMD_PREAD;
|
||||
iocb.aio_flags = IOCB_FLAG_RESFD;
|
||||
iocb.aio_resfd = -1;"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
have=NGX_HAVE_EVENTFD . auto/have
|
||||
CORE_SRCS="$CORE_SRCS $LINUX_AIO_SRCS"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -125,6 +125,8 @@ AIO_SRCS="src/event/modules/ngx_aio_module.c \
|
||||
src/os/unix/ngx_aio_read_chain.c \
|
||||
src/os/unix/ngx_aio_write_chain.c"
|
||||
|
||||
FILE_AIO_SRCS="src/os/unix/ngx_file_aio_read.c"
|
||||
LINUX_AIO_SRCS="src/os/unix/ngx_linux_aio_read.c"
|
||||
|
||||
UNIX_INCS="$CORE_INCS $EVENT_INCS src/os/unix"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user