mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
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.
This commit is contained in:
parent
eeb5325d3b
commit
79df14c04b
Notes:
git
2020-09-03 21:11:34 +09:00
41 changed files with 5951 additions and 783 deletions
4
signal.c
4
signal.c
|
@ -448,7 +448,7 @@ rb_f_kill(int argc, const VALUE *argv)
|
|||
}
|
||||
}
|
||||
else {
|
||||
const rb_pid_t self = (GET_THREAD() == GET_VM()->main_thread) ? getpid() : -1;
|
||||
const rb_pid_t self = (GET_THREAD() == GET_VM()->ractor.main_thread) ? getpid() : -1;
|
||||
int wakeup = 0;
|
||||
|
||||
for (i=1; i<argc; i++) {
|
||||
|
@ -495,7 +495,7 @@ rb_f_kill(int argc, const VALUE *argv)
|
|||
}
|
||||
}
|
||||
if (wakeup) {
|
||||
rb_threadptr_check_signal(GET_VM()->main_thread);
|
||||
rb_threadptr_check_signal(GET_VM()->ractor.main_thread);
|
||||
}
|
||||
}
|
||||
rb_thread_execute_interrupts(rb_thread_current());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue