diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2009-05-30 17:06:38 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2009-05-30 17:06:38 +0000 |
| commit | 785ee23467321cccebbcc6aa344c85927c03d867 (patch) | |
| tree | 883a7beb57cdcf88447556583119139c1b487f86 | |
| parent | 8416832621e8d427f399bbe2b085c12e74a7808f (diff) | |
| download | nginx-785ee23467321cccebbcc6aa344c85927c03d867.tar.gz nginx-785ee23467321cccebbcc6aa344c85927c03d867.tar.bz2 | |
allow shared memory segments more than 4G
| -rw-r--r-- | src/os/win32/ngx_shmem.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/os/win32/ngx_shmem.c b/src/os/win32/ngx_shmem.c index 667e37eaf..a4f5eff84 100644 --- 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, |
