diff options
Diffstat (limited to 'thread_none.c')
-rw-r--r-- | thread_none.c | 74 |
1 files changed, 62 insertions, 12 deletions
diff --git a/thread_none.c b/thread_none.c index 00004ed4dd..38730df7ba 100644 --- a/thread_none.c +++ b/thread_none.c @@ -15,6 +15,10 @@ #include <time.h> +#if defined(__wasm__) && !defined(__EMSCRIPTEN__) +# include "wasm/machine.h" +#endif + #define TIME_QUANTUM_MSEC (100) #define TIME_QUANTUM_USEC (TIME_QUANTUM_MSEC * 1000) #define TIME_QUANTUM_NSEC (TIME_QUANTUM_USEC * 1000) @@ -26,7 +30,7 @@ thread_sched_to_running(struct rb_thread_sched *sched, rb_thread_t *th) } static void -thread_sched_to_waiting(struct rb_thread_sched *sched) +thread_sched_to_waiting(struct rb_thread_sched *sched, rb_thread_t *th) { } @@ -38,7 +42,7 @@ thread_sched_yield(struct rb_thread_sched *sched, rb_thread_t *th) } void -rb_thread_sched_init(struct rb_thread_sched *sched) +rb_thread_sched_init(struct rb_thread_sched *sched, bool atfork) { } @@ -132,19 +136,17 @@ Init_native_thread(rb_thread_t *main_th) ruby_thread_set_native(main_th); } -static void -native_thread_destroy(rb_thread_t *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 } @@ -271,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) { - return Qfalse; + // do nothing } + +void +rb_threadptr_remove(rb_thread_t *th) +{ + // do nothing +} + +void +rb_thread_sched_mark_zombies(rb_vm_t *vm) +{ + // do nothing +} + +bool +rb_thread_lock_native_thread(void) +{ + return false; +} + #endif /* THREAD_SYSTEM_DEPENDENT_IMPLEMENTATION */ |