aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikkel Hjortshoej <fyoucon@gmail.com>2018-02-25 14:38:55 +0100
committerMikkel Hjortshoej <fyoucon@gmail.com>2018-02-25 14:56:50 +0100
commitffec1c77f27d87a50de540887775b0ff3e97a6be (patch)
tree3a576b5e00f4d2b41e1a8de6baff4c83883356ae
parent53571814844976749c8ed27fe6a77c6dd49e627b (diff)
Added terminate_thread to thread.odin
-rw-r--r--core/sys/windows.odin3
-rw-r--r--core/thread.odin4
2 files changed, 6 insertions, 1 deletions
diff --git a/core/sys/windows.odin b/core/sys/windows.odin
index 54a4c3705..40abc8f8c 100644
--- a/core/sys/windows.odin
+++ b/core/sys/windows.odin
@@ -681,7 +681,8 @@ foreign kernel32 {
@(link_name="ResumeThread") resume_thread :: proc(thread: Handle) -> u32 ---;
@(link_name="GetThreadPriority") get_thread_priority :: proc(thread: Handle) -> i32 ---;
@(link_name="SetThreadPriority") set_thread_priority :: proc(thread: Handle, priority: i32) -> Bool ---;
- @(link_name="GetExitCodeThread") get_exit_code_thread :: proc(thread: Handle, exit_code: ^u32) -> Bool ---;
+ @(link_name="GetExitCodeThread") get_exit_code_thread :: proc(thread: Handle, exit_code: ^u32) -> Bool ---;
+ @(link_name="TerminateThread") terminate_thread :: proc(thread: Handle, exit_code: u32) -> Bool ---;
@(link_name="InitializeCriticalSection") initialize_critical_section :: proc(critical_section: ^Critical_Section) ---;
@(link_name="InitializeCriticalSectionAndSpinCount") initialize_critical_section_and_spin_count :: proc(critical_section: ^Critical_Section, spin_count: u32) ---;
diff --git a/core/thread.odin b/core/thread.odin
index 368abc204..71701a5a1 100644
--- a/core/thread.odin
+++ b/core/thread.odin
@@ -74,3 +74,7 @@ destroy :: proc(thread: ^Thread) {
join(thread);
free(thread);
}
+
+terminate :: proc(using thread : ^Thread, exit_code : u32) {
+ win32.terminate_thread(win32_thread, exit_code);
+} \ No newline at end of file