From e852c8828e885acdb6f53bb0f11590a5c34473d9 Mon Sep 17 00:00:00 2001 From: Mitya Selivanov Date: Fri, 15 Sep 2023 15:32:06 +0200 Subject: shared_memory: win32 fix --- source/kit/shared_memory.win32.c | 10 ++++++++-- source/tests/test_interprocess.c | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'source') 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() { -- cgit v1.2.3