version 1.1.1.3, 2013/07/22 01:32:14
|
version 1.1.1.4, 2013/10/14 08:02:46
|
Line 625 TSRM_API int shmget(int key, int size, int flags)
|
Line 625 TSRM_API int shmget(int key, int size, int flags)
|
shm->info = info_handle; |
shm->info = info_handle; |
shm->descriptor = MapViewOfFileEx(shm->info, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL); |
shm->descriptor = MapViewOfFileEx(shm->info, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL); |
|
|
if (created) { | if (NULL != shm->descriptor && created) { |
shm->descriptor->shm_perm.key = key; |
shm->descriptor->shm_perm.key = key; |
shm->descriptor->shm_segsz = size; |
shm->descriptor->shm_segsz = size; |
shm->descriptor->shm_ctime = time(NULL); |
shm->descriptor->shm_ctime = time(NULL); |
Line 639 TSRM_API int shmget(int key, int size, int flags)
|
Line 639 TSRM_API int shmget(int key, int size, int flags)
|
shm->descriptor->shm_perm.mode = shm->descriptor->shm_perm.seq = 0; |
shm->descriptor->shm_perm.mode = shm->descriptor->shm_perm.seq = 0; |
} |
} |
|
|
if (shm->descriptor->shm_perm.key != key || size > shm->descriptor->shm_segsz ) { | if (NULL != shm->descriptor && (shm->descriptor->shm_perm.key != key || size > shm->descriptor->shm_segsz)) { |
CloseHandle(shm->segment); | if (NULL != shm->segment) { |
| CloseHandle(shm->segment); |
| } |
UnmapViewOfFile(shm->descriptor); |
UnmapViewOfFile(shm->descriptor); |
CloseHandle(shm->info); |
CloseHandle(shm->info); |
return -1; |
return -1; |