]> git.kaiwu.me - nginx.git/commitdiff
allow shared memory segments more than 4G
authorIgor Sysoev <igor@sysoev.ru>
Sat, 30 May 2009 17:06:38 +0000 (17:06 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Sat, 30 May 2009 17:06:38 +0000 (17:06 +0000)
src/os/win32/ngx_shmem.c

index 667e37eaf0bc63f3463cb9e13092629825a432d7..a4f5eff8425984ae317dc0368ddbb5f42f41a889 100644 (file)
@@ -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,