diff options
Diffstat (limited to 'thread_none.c')
| -rw-r--r-- | thread_none.c | 93 |
1 files changed, 80 insertions, 13 deletions
diff --git a/thread_none.c b/thread_none.c index cf4658e571..e6616c0585 100644 --- a/thread_none.c +++ b/thread_none.c @@ -15,9 +15,9 @@ #include <time.h> -#define TIME_QUANTUM_MSEC (100) -#define TIME_QUANTUM_USEC (TIME_QUANTUM_MSEC * 1000) -#define TIME_QUANTUM_NSEC (TIME_QUANTUM_USEC * 1000) +#if defined(__wasm__) && !defined(__EMSCRIPTEN__) +# include "wasm/machine.h" +#endif // Do nothing for GVL static void @@ -26,17 +26,19 @@ 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) { } +#define thread_sched_to_dead thread_sched_to_waiting + static void 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) { } @@ -130,19 +132,23 @@ 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_mn_threads_params(void) { } -void -ruby_init_stack(volatile VALUE *addr) +static void +native_thread_destroy_atfork(struct rb_native_thread *nt) { + /* no-op */ } 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 } @@ -269,9 +275,70 @@ 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; +} + +void * +rb_thread_prevent_fork(void *(*func)(void *), void *data) +{ + return func(data); +} + +void +rb_thread_malloc_stack_set(rb_thread_t *th, void *stack) +{ + // no-op +} + #endif /* THREAD_SYSTEM_DEPENDENT_IMPLEMENTATION */ |
