diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-07 23:52:48 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-05-07 23:52:48 +0000 |
commit | d7a9f591083547865634f2ae2f138b2d89b04c5b (patch) | |
tree | e6de6955d78d908e035b94a4dfb89175c641ebf1 /cont.c | |
parent | cd36bea5684b065827060e07cc3d6e33987d61c1 (diff) | |
download | ruby-d7a9f591083547865634f2ae2f138b2d89b04c5b.tar.gz |
cont.c: wrapper function
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'cont.c')
-rw-r--r-- | cont.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -750,6 +750,7 @@ fiber_set_stack_location(void) th->ec->machine.stack_start = (void*)(((VALUE)ptr & RB_PAGE_MASK) + STACK_UPPER((void *)&ptr, 0, RB_PAGE_SIZE)); } +NORETURN(static VOID CALLBACK fiber_entry(void *arg)); static VOID CALLBACK fiber_entry(void *arg) { @@ -758,6 +759,13 @@ fiber_entry(void *arg) } #else /* _WIN32 */ +NORETURN(static void fiber_entry(void *arg)); +static void +fiber_entry(void *arg) +{ + rb_fiber_start(); +} + /* * FreeBSD require a first (i.e. addr) argument of mmap(2) is not NULL * if MAP_STACK is passed. @@ -841,7 +849,7 @@ fiber_initialize_machine_stack_context(rb_fiber_t *fib, size_t size) context->uc_stack.ss_size = size; fib->ss_sp = ptr; fib->ss_size = size; - makecontext(context, rb_fiber_start, 0); + makecontext(context, fiber_entry, 0); sec->machine.stack_start = (VALUE*)(ptr + STACK_DIR_UPPER(0, size)); sec->machine.stack_maxsize = size - RB_PAGE_SIZE; #endif |