# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1082182440 0 # Node ID 841445b0b457cfc648dc38ab62b73b29a5fcc79c # Parent 05060ce4d6ae54d05344a78078e8490a70d6979c Fixes for the shared memory and named semaphore code. diff -r 05060ce4d6ae -r 841445b0b457 os2/dw.c --- a/os2/dw.c Sat Apr 17 06:04:40 2004 +0000 +++ b/os2/dw.c Sat Apr 17 06:14:00 2004 +0000 @@ -7941,7 +7941,6 @@ */ HEV API dw_named_event_new(char *name) { - int rc; char *semname = malloc(strlen(name)+8); HEV ev = 0; @@ -8055,7 +8054,7 @@ break; case ERROR_SEM_BUSY: - rc = DW_ERROR_BUSY; + rc = DW_ERROR_INTERRUPT; break; } @@ -8070,16 +8069,16 @@ * size: Size in bytes of the shared memory region to allocate. * name: A string pointer to a unique memory name. */ -int API dw_named_memory_alloc(HSHM *handle, void **dest, int size, char *name) +HSHM API dw_named_memory_new(void **dest, int size, char *name) { char namebuf[1024]; sprintf(namebuf, "\\sharemem\\%s", name); if(DosAllocSharedMem((void *)dest, namebuf, size, PAG_COMMIT | PAG_WRITE | PAG_READ) != NO_ERROR) - return -1; - - return 0; + return 0; + + return 1; } /* @@ -8089,16 +8088,17 @@ * size: Size in bytes of the shared memory region to requested. * name: A string pointer to a unique memory name. */ -int API dw_named_memory_get(HSHM *handle, void **dest, int size, char *name) +HSHM API dw_named_memory_get(void **dest, int size, char *name) { char namebuf[1024]; + size = size; sprintf(namebuf, "\\sharemem\\%s", name); if(DosGetNamedSharedMem((void *)dest, namebuf, PAG_READ | PAG_WRITE) != NO_ERROR) - return -1; - - return 0; + return 0; + + return 1; } /* @@ -8109,6 +8109,8 @@ */ int API dw_named_memory_free(HSHM handle, void *ptr) { + handle = handle; + if(DosFreeMem(ptr) != NO_ERROR) return -1; return 0;