diff options
author | Igor Sysoev <igor@sysoev.ru> | 2009-09-30 17:21:52 +0400 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2009-09-30 17:21:52 +0400 |
commit | 3266171fd4691d173f698f1c0c246322a94588e2 (patch) | |
tree | c6ff4969a31639d546af48a644c5c11b5716b82d /src/os | |
parent | 687b0e99ea4ff631e447fff2d177d0c9297529fc (diff) |
read_ahead
Diffstat (limited to 'src/os')
-rw-r--r-- | src/os/unix/ngx_files.h | 22 | ||||
-rw-r--r-- | src/os/win32/ngx_files.c | 7 | ||||
-rw-r--r-- | src/os/win32/ngx_files.h | 2 |
3 files changed, 31 insertions, 0 deletions
diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h index 993ce8f93..832dbbe0f 100644 --- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h @@ -254,6 +254,28 @@ ngx_err_t ngx_unlock_fd(ngx_fd_t fd); #define ngx_unlock_fd_n "fcntl(F_SETLK, F_UNLCK)" +#if (NGX_HAVE_F_READAHEAD) + +#define NGX_HAVE_READ_AHEAD 1 + +#define ngx_read_ahead(fd, n) fcntl(fd, F_READAHEAD, (int) n) +#define ngx_read_ahead_n "fcntl(fd, F_READAHEAD)" + +#elif (NGX_HAVE_POSIX_FADVISE) + +#define NGX_HAVE_READ_AHEAD 1 + +#define ngx_read_ahead(fd, n) posix_fadvise(fd, 0, 0, POSIX_FADV_SEQUENTIAL) +#define ngx_read_ahead_n "posix_fadvise(POSIX_FADV_SEQUENTIAL)" + +#else + +#define ngx_read_ahead(fd, n) 0 +#define ngx_read_ahead_n "ngx_read_ahead_n" + +#endif + + #if (NGX_HAVE_O_DIRECT) ngx_int_t ngx_directio_on(ngx_fd_t fd); diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c index 70cab2f1c..3bb79b89e 100644 --- a/src/os/win32/ngx_files.c +++ b/src/os/win32/ngx_files.c @@ -477,6 +477,13 @@ ngx_de_link_info(u_char *name, ngx_dir_t *dir) ngx_int_t +ngx_read_ahead(ngx_fd_t fd, size_t n) +{ + return ~NGX_FILE_ERROR; +} + + +ngx_int_t ngx_directio_on(ngx_fd_t fd) { return ~NGX_FILE_ERROR; diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h index 950bd98a2..605eee85e 100644 --- a/src/os/win32/ngx_files.h +++ b/src/os/win32/ngx_files.h @@ -232,6 +232,8 @@ ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size, ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce, off_t offset, ngx_pool_t *pool); +ngx_int_t ngx_read_ahead(ngx_fd_t fd, size_t n); +#define ngx_read_ahead_n "ngx_read_ahead_n" ngx_int_t ngx_directio_on(ngx_fd_t fd); #define ngx_directio_on_n "ngx_directio_on_n" |