summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-05-30 17:06:38 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-05-30 17:06:38 +0000
commit785ee23467321cccebbcc6aa344c85927c03d867 (patch)
tree883a7beb57cdcf88447556583119139c1b487f86
parent8416832621e8d427f399bbe2b085c12e74a7808f (diff)
downloadnginx-785ee23467321cccebbcc6aa344c85927c03d867.tar.gz
nginx-785ee23467321cccebbcc6aa344c85927c03d867.tar.bz2
allow shared memory segments more than 4G
-rw-r--r--src/os/win32/ngx_shmem.c9
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,