diff options
author | Mitya Selivanov <automainint@guattari.tech> | 2023-09-15 15:32:06 +0200 |
---|---|---|
committer | Mitya Selivanov <automainint@guattari.tech> | 2023-09-15 15:32:06 +0200 |
commit | e852c8828e885acdb6f53bb0f11590a5c34473d9 (patch) | |
tree | 79a248c9ec5644cfd5c10f8e7058ce3cab1a0c42 | |
parent | 162e9dede381ef9f20c0e37336548d2593e76a34 (diff) | |
download | kit-e852c8828e885acdb6f53bb0f11590a5c34473d9.zip |
shared_memory: win32 fix
-rw-r--r-- | source/kit/shared_memory.win32.c | 10 | ||||
-rw-r--r-- | source/tests/test_interprocess.c | 5 |
2 files changed, 12 insertions, 3 deletions
diff --git a/source/kit/shared_memory.win32.c b/source/kit/shared_memory.win32.c index c6cc3d3..5b5c1b0 100644 --- a/source/kit/shared_memory.win32.c +++ b/source/kit/shared_memory.win32.c @@ -69,7 +69,13 @@ kit_shared_memory_t kit_shared_memory_open(kit_str_t name, i64 size, kit_status_t kit_shared_memory_close(kit_shared_memory_t *mem) { assert(mem != NULL); - UnmapViewOfFile(mem->bytes); - CloseHandle(mem->_handle); + i32 status = KIT_OK; + + if (!UnmapViewOfFile(mem->bytes)) + status |= KIT_ERROR_MUNMAP_FAILED; + if (!CloseHandle(mem->_handle)) + status |= KIT_ERROR_UNLINK_FAILED; + + return status; } #endif diff --git a/source/tests/test_interprocess.c b/source/tests/test_interprocess.c index 58044bf..5afc0c8 100644 --- a/source/tests/test_interprocess.c +++ b/source/tests/test_interprocess.c @@ -25,7 +25,10 @@ int run_writer() { while (mem.bytes[0] != STATE_DONE) thrd_yield(); - return kit_shared_memory_close(&mem); + if (kit_shared_memory_close(&mem) != KIT_OK) + return 1; + + return 0; } int run_reader() { |