mirror of
https://github.com/nginx/nginx.git
synced 2024-12-27 09:21:18 -06:00
nginx-0.0.2-2004-02-18-18:45:21 import
This commit is contained in:
parent
22a7c50463
commit
8ae18a10d6
4
auto/cc
4
auto/cc
@ -24,7 +24,7 @@ case $CC in
|
||||
# debug
|
||||
CFLAGS="$CFLAGS -g"
|
||||
|
||||
CFLAGS="$CFLAGS -D HAVE_GCC_VARIADIC_MACROS=1"
|
||||
have=HAVE_GCC_VARIADIC_MACROS . auto/have
|
||||
|
||||
OBJEXT=o
|
||||
OBJOUT="-o "
|
||||
@ -50,7 +50,7 @@ case $CC in
|
||||
# stop on warning
|
||||
CFLAGS="$CFLAGS -Werror"
|
||||
|
||||
CFLAGS="$CFLAGS -D HAVE_C99_VARIADIC_MACROS=1"
|
||||
have=HAVE_C99_VARIADIC_MACROS . auto/have
|
||||
|
||||
OBJEXT=o
|
||||
OBJOUT="-o "
|
||||
|
@ -40,7 +40,7 @@ static void ngx_rtsig_done(ngx_cycle_t *cycle);
|
||||
static int ngx_rtsig_add_connection(ngx_connection_t *c);
|
||||
static int ngx_rtsig_del_connection(ngx_connection_t *c, u_int flags);
|
||||
static int ngx_rtsig_process_events(ngx_log_t *log);
|
||||
static int ngx_rtsig_process_overlow(ngx_log_t *log);
|
||||
static int ngx_rtsig_process_overflow(ngx_log_t *log);
|
||||
|
||||
static void *ngx_rtsig_create_conf(ngx_cycle_t *cycle);
|
||||
static char *ngx_rtsig_init_conf(ngx_cycle_t *cycle, void *conf);
|
||||
@ -310,7 +310,7 @@ int ngx_rtsig_process_events(ngx_log_t *log)
|
||||
}
|
||||
|
||||
|
||||
static int ngx_rtsig_process_overlow(ngx_log_t *log)
|
||||
static int ngx_rtsig_process_overflow(ngx_log_t *log)
|
||||
{
|
||||
if (ngx_poll_module_ctx.actions.process(log) == NGX_OK) {
|
||||
ngx_event_actions = ngx_rtsig_module_ctx.actions;
|
||||
|
@ -287,6 +287,7 @@ extern ngx_event_actions_t ngx_event_actions;
|
||||
#define NGX_WRITE_EVENT POLLOUT
|
||||
|
||||
#define NGX_LEVEL_EVENT 0
|
||||
#define NGX_ONESHOT_EVENT 1
|
||||
|
||||
|
||||
#elif (HAVE_EPOLL)
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <limits.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
@ -71,6 +72,11 @@
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef IOV_MAX
|
||||
#define IOV_MAX 1024
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef HAVE_INHERITED_NONBLOCK
|
||||
#define HAVE_INHERITED_NONBLOCK 1
|
||||
#endif
|
||||
|
@ -73,7 +73,7 @@ ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in)
|
||||
prev = NULL;
|
||||
iov = NULL;
|
||||
|
||||
for (cl = in; cl; cl = cl->next) {
|
||||
for (cl = in; cl && header.nelts < IOV_MAX; cl = cl->next) {
|
||||
if (ngx_hunk_special(cl->hunk)) {
|
||||
continue;
|
||||
}
|
||||
@ -123,7 +123,7 @@ ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in)
|
||||
prev = NULL;
|
||||
iov = NULL;
|
||||
|
||||
for ( /* void */; cl; cl = cl->next) {
|
||||
for ( /* void */; cl && trailer.nelts < IOV_MAX; cl = cl->next) {
|
||||
if (ngx_hunk_special(cl->hunk)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <limits.h>
|
||||
#include <time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
|
@ -52,7 +52,7 @@ ngx_chain_t *ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in)
|
||||
|
||||
/* create the iovec and coalesce the neighbouring hunks */
|
||||
|
||||
for (cl = in; cl; cl = cl->next) {
|
||||
for (cl = in; cl && header.nelts < IOV_MAX; cl = cl->next) {
|
||||
if (ngx_hunk_special(cl->hunk)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <limits.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/wait.h>
|
||||
|
@ -16,7 +16,7 @@ ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in)
|
||||
sendfilevec_t *sfv;
|
||||
ngx_array_t vec;
|
||||
ngx_event_t *wev;
|
||||
ngx_chain_t *cl;
|
||||
ngx_chain_t *cl, *tail;
|
||||
|
||||
wev = c->write;
|
||||
|
||||
@ -37,7 +37,7 @@ ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in)
|
||||
|
||||
/* create the sendfilevec and coalesce the neighbouring hunks */
|
||||
|
||||
for (cl = in; cl; cl = cl->next) {
|
||||
for (cl = in; cl && vec.nelts < IOV_MAX; cl = cl->next) {
|
||||
if (ngx_hunk_special(cl->hunk)) {
|
||||
continue;
|
||||
}
|
||||
@ -77,6 +77,13 @@ ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* the tail is the rest of the chain that exceeded a single
|
||||
* sendfilev() capability, IOV_MAX in Solaris is only 16
|
||||
*/
|
||||
|
||||
tail = cl;
|
||||
|
||||
n = sendfilev(c->fd, vec.elts, vec.nelts, &sent);
|
||||
|
||||
if (n == -1) {
|
||||
@ -142,7 +149,9 @@ ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in)
|
||||
|
||||
in = cl;
|
||||
|
||||
} while (eintr);
|
||||
/* "tail == in" means that a single sendfilev() is complete */
|
||||
|
||||
} while ((tail && tail == in) || eintr);
|
||||
|
||||
if (in) {
|
||||
wev->ready = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user