changes
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 18 Oct 2021 16:49:52 +0000 (11:49 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 18 Oct 2021 16:49:52 +0000 (11:49 -0500)
site/js/decompiler.js
src/app/app.onyx

index 56024b4f1528c00b5dba4aadbb84341e875c932c..6cfa4cc23be2c2b39bef6b606868983e028f6f5e 100644 (file)
@@ -18,9 +18,7 @@ window.ONYX_MODULES.push({
     },
 
     alert: function(strptr, strlen) {
-        const decoder = new TextDecoder();
-        const data = new Uint8Array(window.ONYX_MEMORY.buffer, strptr, strlen);
-        const str = decoder.decode(data);
+        const str = onyx_decode_text(strptr, strlen);
 
         window.alert(str);
     },
index e86e6b64fb16273c83e6edc63d48a758f0f48b2c..c7b4d839d12f162b634b330a273396b6e7c59a2a 100644 (file)
@@ -198,25 +198,29 @@ init :: () {
 
     use package core.intrinsics.atomics
 
-    t, t2: thread.Thread;
-    thread.spawn(^t, (_: ^i32) {
+    #persist #thread_local t  : thread.Thread;
+    #persist #thread_local t2 : thread.Thread;
+    #persist barrier : sync.Barrier;
+    sync.barrier_init(^barrier, 2);
+
+    thread.spawn(^t, null, (_: ^i32) {
         printf("Hello from another thread!\n");
 
         for i: 1000 {
-            __atomic_wait(_, 0, 1000000000);
+            sync.barrier_wait(^barrier);
             printf("Hello from another thread! {}\n", i);
         }
+    });
 
-    }, null);
-
-    thread.spawn(^t2, (_: ^i32) {
+    thread.spawn(^t2, null, (_: ^i32) {
         i := 1;
         while true {
             i *= 2;
             __atomic_wait(_, 0, 1000000000);
+            sync.barrier_wait(^barrier);
             debug_log(.Warning, "Debug message: {}\n", i);
         }
-    }, null);
+    });
 }
 
 handle_event :: (event: ^events.Event) {