diff options
| author | hikari <ftphikari@gmail.com> | 2023-06-07 19:11:16 +0300 |
|---|---|---|
| committer | hikari <ftphikari@gmail.com> | 2023-06-07 19:11:16 +0300 |
| commit | dcf4e51787119d8dcf86ca0195d3a07aea6d47a8 (patch) | |
| tree | 0b5cc5674de634e52d4a2fdbdbee1618007801da /core/thread/thread_windows.odin | |
| parent | 7dc09ed4501d0a7b256a05e6467cd86a262367ae (diff) | |
[core:thread] Added `self_cleanup` flag to properly auto-clean threads
Diffstat (limited to 'core/thread/thread_windows.odin')
| -rw-r--r-- | core/thread/thread_windows.odin | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/thread/thread_windows.odin b/core/thread/thread_windows.odin index e62071a1f..eace9a926 100644 --- a/core/thread/thread_windows.odin +++ b/core/thread/thread_windows.odin @@ -47,6 +47,12 @@ _create :: proc(procedure: Thread_Proc, priority: Thread_Priority) -> ^Thread { intrinsics.atomic_store(&t.flags, t.flags + {.Done}) + if t.self_cleanup { + win32.CloseHandle(t.win32_thread) + t.win32_thread = win32.INVALID_HANDLE + free(t, t.creation_allocator) + } + return 0 } |