changeset 2903:beb0707ed8ab

allow shared memory segments more than 4G
author Igor Sysoev <igor@sysoev.ru>
date Sat, 30 May 2009 17:06:38 +0000
parents a1a1c7e3fb8d
children 474a9daf8c80
files src/os/win32/ngx_shmem.c
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/os/win32/ngx_shmem.c
+++ b/src/os/win32/ngx_shmem.c
@@ -11,7 +11,8 @@
 ngx_int_t
 ngx_shm_alloc(ngx_shm_t *shm)
 {
-    u_char  *name;
+    u_char    *name;
+    uint64_t   size;
 
     name = ngx_alloc(shm->name.len + 2 + sizeof(NGX_INT32_LEN), shm->log);
     if (name == NULL) {
@@ -22,8 +23,12 @@ ngx_shm_alloc(ngx_shm_t *shm)
 
     ngx_set_errno(0);
 
+    size = shm->size;
+
     shm->handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE,
-                                    0, shm->size, (char *) name);
+                                    (u_long) (size >> 32),
+                                    (u_long) (size & 0xffffffff),
+                                    (char *) name);
 
     if (shm->handle == NULL) {
         ngx_log_error(NGX_LOG_ALERT, shm->log, ngx_errno,