summaryrefslogtreecommitdiff
path: root/thread_none.c
diff options
context:
space:
mode:
Diffstat (limited to 'thread_none.c')
-rw-r--r--thread_none.c89
1 files changed, 70 insertions, 19 deletions
diff --git a/thread_none.c b/thread_none.c
index 24e8e45e10..38730df7ba 100644
--- a/thread_none.c
+++ b/thread_none.c
@@ -15,7 +15,9 @@
#include <time.h>
-#define DEBUG_OUT() (void)(0);
+#if defined(__wasm__) && !defined(__EMSCRIPTEN__)
+# include "wasm/machine.h"
+#endif
#define TIME_QUANTUM_MSEC (100)
#define TIME_QUANTUM_USEC (TIME_QUANTUM_MSEC * 1000)
@@ -23,29 +25,33 @@
// Do nothing for GVL
static void
-gvl_acquire(rb_global_vm_lock_t *gvl, rb_thread_t *th)
+thread_sched_to_running(struct rb_thread_sched *sched, rb_thread_t *th)
{
}
static void
-gvl_release(rb_global_vm_lock_t *gvl)
+thread_sched_to_waiting(struct rb_thread_sched *sched, rb_thread_t *th)
{
}
+#define thread_sched_to_dead thread_sched_to_waiting
+
static void
-gvl_yield(rb_global_vm_lock_t *gvl, rb_thread_t *th)
+thread_sched_yield(struct rb_thread_sched *sched, rb_thread_t *th)
{
}
void
-rb_gvl_init(rb_global_vm_lock_t *gvl)
+rb_thread_sched_init(struct rb_thread_sched *sched, bool atfork)
{
}
+#if 0
static void
-gvl_destroy(rb_global_vm_lock_t *gvl)
+rb_thread_sched_destroy(struct rb_thread_sched *sched)
{
}
+#endif
// Do nothing for mutex guard
void
@@ -124,26 +130,23 @@ ruby_thread_set_native(rb_thread_t *th)
}
void
-Init_native_thread(rb_thread_t *th)
+Init_native_thread(rb_thread_t *main_th)
{
// no TLS setup and no thread id setup
- ruby_thread_set_native(th);
- fill_thread_id_str(th);
-}
-
-static void
-native_thread_destroy(rb_thread_t *th)
-{
+ ruby_thread_set_native(main_th);
}
void
-ruby_init_stack(volatile VALUE *addr)
+ruby_mn_threads_params(void)
{
}
static int
-native_thread_init_stack(rb_thread_t *th)
+native_thread_init_stack(rb_thread_t *th, void *local_in_parent_frame)
{
+#if defined(__wasm__) && !defined(__EMSCRIPTEN__)
+ th->ec->machine.stack_start = (VALUE *)rb_wasm_stack_get_base();
+#endif
return 0; // success
}
@@ -270,9 +273,57 @@ native_fd_select(int n, rb_fdset_t *readfds, rb_fdset_t *writefds, rb_fdset_t *e
return rb_fd_select(n, readfds, writefds, exceptfds, timeout);
}
-static VALUE
-rb_thread_start_unblock_thread(void)
+static bool
+th_has_dedicated_nt(const rb_thread_t *th)
+{
+ return true;
+}
+
+void
+rb_add_running_thread(rb_thread_t *th){
+ // do nothing
+}
+
+void
+rb_del_running_thread(rb_thread_t *th)
+{
+ // do nothing
+}
+
+void
+rb_threadptr_sched_free(rb_thread_t *th)
+{
+ // do nothing
+}
+
+void
+rb_ractor_sched_barrier_start(rb_vm_t *vm, rb_ractor_t *cr)
+{
+ // do nothing
+}
+
+void
+rb_ractor_sched_barrier_join(rb_vm_t *vm, rb_ractor_t *cr)
+{
+ // do nothing
+}
+
+void
+rb_threadptr_remove(rb_thread_t *th)
+{
+ // do nothing
+}
+
+void
+rb_thread_sched_mark_zombies(rb_vm_t *vm)
{
- return Qfalse;
+ // do nothing
}
+
+bool
+rb_thread_lock_native_thread(void)
+{
+ return false;
+}
+
#endif /* THREAD_SYSTEM_DEPENDENT_IMPLEMENTATION */