aboutsummaryrefslogtreecommitdiffstats
path: root/mjit.c
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2020-03-10 02:22:11 +0900
committerKoichi Sasada <ko1@atdot.net>2020-09-03 21:11:06 +0900
commit79df14c04b452411b9d17e26a398e491bca1a811 (patch)
tree7598cee0f105439efd5bb328a727b0fe27d7c666 /mjit.c
parenteeb5325d3bfd71301896360c17e8f51abcb9a7e5 (diff)
downloadruby-79df14c04b452411b9d17e26a398e491bca1a811.tar.gz
Introduce Ractor mechanism for parallel execution
This commit introduces Ractor mechanism to run Ruby program in parallel. See doc/ractor.md for more details about Ractor. See ticket [Feature #17100] to see the implementation details and discussions. [Feature #17100] This commit does not complete the implementation. You can find many bugs on using Ractor. Also the specification will be changed so that this feature is experimental. You will see a warning when you make the first Ractor with `Ractor.new`. I hope this feature can help programmers from thread-safety issues.
Diffstat (limited to 'mjit.c')
-rw-r--r--mjit.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/mjit.c b/mjit.c
index 39de0e02c9..b6abcf4f1d 100644
--- a/mjit.c
+++ b/mjit.c
@@ -309,8 +309,8 @@ mark_ec_units(rb_execution_context_t *ec)
static void
unload_units(void)
{
- rb_vm_t *vm = GET_THREAD()->vm;
- rb_thread_t *th = NULL;
+ //rb_vm_t *vm = GET_THREAD()->vm;
+ //rb_thread_t *th = NULL;
struct rb_mjit_unit *unit = 0, *next, *worst;
struct mjit_cont *cont;
int delete_num, units_num = active_units.length;
@@ -329,9 +329,10 @@ unload_units(void)
assert(unit->iseq != NULL && unit->handle != NULL);
unit->used_code_p = FALSE;
}
- list_for_each(&vm->living_threads, th, vmlt_node) {
- mark_ec_units(th->ec);
- }
+ // TODO
+ //list_for_each(&vm->living_threads, th, lt_node) {
+ // mark_ec_units(th->ec);
+ //}
for (cont = first_cont; cont != NULL; cont = cont->next) {
mark_ec_units(cont->ec);
}