factored common code
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 23 Nov 2021 03:00:09 +0000 (21:00 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Tue, 23 Nov 2021 03:00:09 +0000 (21:00 -0600)
core/runtime/common.onyx
core/runtime/js.onyx
core/runtime/onyx_run.onyx

index 997b7bc7e91dd52a7790a54f46843cd00d9184f0..fe4f8fc86d25eb11d4dad63c24809ce1575b59c3 100644 (file)
@@ -54,3 +54,20 @@ __thread_initialize :: macro () {
     __stdio_init();
 }
 
+_thread_start :: (id: i32, tls_base: rawptr, func: (data: rawptr) -> void, data: rawptr) {
+    __tls_base = tls_base;
+    context.thread_id = id;
+
+    __stack_top = raw_alloc(alloc.heap_allocator, 1 << 20);
+    __thread_initialize();
+
+    func(data);
+
+    __flush_stdio();
+}
+
+_thread_exit :: (id: i32) {
+    raw_free(alloc.heap_allocator, __tls_base);
+
+    thread.__exited(id);
+}
index 31a3700d41fba2efa74f8377566006902ec7cd67..be24ba77f52cdb138713fc43e08e2f7f3e09e4de 100644 (file)
@@ -23,21 +23,6 @@ __exit          :: (status: i32) -> void #foreign "host" "exit" ---
     __spawn_thread :: (id: i32, tls_base: rawptr, func: (data: rawptr) -> void, data: rawptr) -> bool #foreign "host" "spawn_thread" ---
     __kill_thread  :: (id: i32) -> i32 #foreign "host" "kill_thread" ---
 
-    #export "_thread_start" (id: i32, tls_base: rawptr, func: (data: rawptr) -> void, data: rawptr) {
-        __tls_base = tls_base;
-        context.thread_id = id;
-
-        __stack_top = raw_alloc(alloc.heap_allocator, 1 << 20);
-        __thread_initialize();
-
-        func(data);
-
-        __flush_stdio();
-    }
-
-    #export "_thread_exit" (id: i32) {
-        raw_free(alloc.heap_allocator, __tls_base);
-
-        thread.__exited(id);
-    }
+    #export "_thread_start" _thread_start
+    #export "_thread_exit"  _thread_exit
 }
index 69e6914fe9e056439befea4e2e311e2a1242e5a2..8d924365dbd45dd91b7a27c6d6386a819de42ab4 100644 (file)
@@ -13,21 +13,6 @@ use package wasi
     __spawn_thread :: (id: i32, tls_base: rawptr, func: (data: rawptr) -> void, data: rawptr) -> bool #foreign "env" "spawn_thread" ---
     __kill_thread  :: (id: i32) -> i32 #foreign "env" "kill_thread" ---
 
-    #export "_thread_start" (id: i32, tls_base: rawptr, func: (data: rawptr) -> void, data: rawptr) {
-        __tls_base = tls_base;
-        context.thread_id = id;
-
-        __stack_top = raw_alloc(alloc.heap_allocator, 1 << 20);
-        __thread_initialize();
-
-        func(data);
-
-        __flush_stdio();
-    }
-    
-    #export "_thread_exit" (id: i32) {
-        raw_free(alloc.heap_allocator, __tls_base);
-
-        thread.__exited(id);
-    }
+    #export "_thread_start" _thread_start
+    #export "_thread_exit"  _thread_exit
 }