changeset 433:9a97dcdd2421

nginx-0.0.11-2004-09-21-19:47:05 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 21 Sep 2004 15:47:05 +0000
parents 11362a3e3911
children 8998b09f89e9
files auto/os/solaris src/core/ngx_times.c src/http/modules/ngx_http_gzip_filter.c src/http/ngx_http_request.h src/os/unix/ngx_atomic.h src/os/unix/ngx_solaris_sendfilev_chain.c
diffstat 6 files changed, 32 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/auto/os/solaris
+++ b/auto/os/solaris
@@ -25,6 +25,18 @@ case $PLATFORM in
 esac
 
 
+case $PLATFORM in
+
+    *:sun4u)
+        CFLAGS="$CFLAGS -mcpu=v9"
+    ;;
+
+    *)
+    ;;
+
+esac
+
+
 if [ $ZLIB_ASM != NO ]; then
     echo "$0: error: the --with-zlib-asm=CPU option is not supported"
     echo "on that platform"
--- a/src/core/ngx_times.c
+++ b/src/core/ngx_times.c
@@ -79,7 +79,7 @@ void ngx_time_init()
     ngx_cached_http_time.len = sizeof("Mon, 28 Sep 1970 06:00:00 GMT") - 1;
     ngx_cached_http_log_time.len = sizeof("28/Sep/1970:12:00:00 +0600") - 1;
 
-#if (TIME_T_SIZE > SIG_ATOMIC_T_SIZE)
+#if (NGX_THREADS && (TIME_T_SIZE > SIG_ATOMIC_T_SIZE))
     ngx_cached_time = &cached_time[0];
 #endif
 
@@ -132,7 +132,7 @@ void ngx_time_update(time_t s)
         slot++;
     }
 
-#if (TIME_T_SIZE > SIG_ATOMIC_T_SIZE)
+#if (NGX_THREADS && (TIME_T_SIZE > SIG_ATOMIC_T_SIZE))
     ngx_cached_time = &cached_time[slot];
 #endif
 
--- a/src/http/modules/ngx_http_gzip_filter.c
+++ b/src/http/modules/ngx_http_gzip_filter.c
@@ -440,8 +440,9 @@ static ngx_int_t ngx_http_gzip_body_filt
          * Besides we free this memory as soon as the gzipping will complete
          * and do not wait while a whole response will be sent to a client.
          *
-         * 8K is for zlib deflate_state.  It takes 5816 bytes on x86
-         * and 5920 bytes on amd64.
+         * 8K is for zlib deflate_state, it takes
+         *  * 5816 bytes on x86 and sparc64 (32-bit mode)
+         *  * 5920 bytes on amd64 and sparc64
          */
 
         ctx->allocated = 8192 + (1 << (wbits + 2)) + (1 << (memlevel + 9));
@@ -803,9 +804,7 @@ static void *ngx_http_gzip_filter_alloc(
     if (alloc % 512 != 0) {
 
         /*
-         * The zlib deflate_state allocation, it takes 5816 bytes on x86
-         * and 5920 bytes on amd64.
-         * We allocate 8K.
+         * the zlib deflate_state allocation, it takes about 6K, we allocate 8K
          */
 
         alloc = (alloc + ngx_pagesize - 1) & ~(ngx_pagesize - 1);
--- a/src/http/ngx_http_request.h
+++ b/src/http/ngx_http_request.h
@@ -218,9 +218,15 @@ struct ngx_http_cleanup_s {
 
 
 typedef struct {
-    ngx_http_request_t  *request;
-    ngx_array_t          large_buffers;
-    ngx_uint_t           pipeline;      /* unsigned  pipeline:1; */
+    ngx_http_request_t   *request;
+
+    ngx_buf_t           **busy;
+    ngx_uint_t            nbusy;
+
+    ngx_buf_t           **free;
+    ngx_uint_t            nfree;
+
+    ngx_uint_t            pipeline;      /* unsigned  pipeline:1; */
 } ngx_http_connection_t;
 
 
--- a/src/os/unix/ngx_atomic.h
+++ b/src/os/unix/ngx_atomic.h
@@ -86,7 +86,7 @@ static ngx_inline uint32_t ngx_atomic_in
 
         __asm__ volatile (
 
-        "casa [%1]ASI_P, %2, %0"
+        "casa [%1] 0x80, %2, %0"
 
         : "+r" (res) : "r" (value), "r" (old));
 
@@ -112,7 +112,7 @@ static ngx_inline uint32_t ngx_atomic_cm
 
     __asm__ volatile (
 
-    "casa [%1]ASI_P, %2, %0"
+    "casa [%1] 0x80, %2, %0"
 
     : "+r" (res) : "r" (lock), "r" (old));
 
@@ -124,8 +124,8 @@ static ngx_inline uint32_t ngx_atomic_cm
 typedef volatile uint32_t  ngx_atomic_t;
 
 /* STUB */
-#define ngx_atomic_inc(x)   (*(x))++;
-#define ngx_atomic_dec(x)   (*(x))--;
+#define ngx_atomic_inc(x)   ++(*(x));
+#define ngx_atomic_dec(x)   --(*(x));
 #define ngx_atomic_cmp_set(lock, old, set)   1
 /**/
 
--- a/src/os/unix/ngx_solaris_sendfilev_chain.c
+++ b/src/os/unix/ngx_solaris_sendfilev_chain.c
@@ -18,8 +18,7 @@ ngx_chain_t *ngx_solaris_sendfilev_chain
     int             fd;
     u_char         *prev;
     off_t           fprev, sprev, send, aligned;
-    size_t          size, sent;
-    ssize_t         n;
+    ssize_t         size, sent, n;
     ngx_int_t       eintr, complete;
     ngx_err_t       err;
     sendfilevec_t  *sfv, sfvs[NGX_SENDFILEVECS];