git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kazu 2018-11-20 03:03:02 +00:00
Родитель aa515c8d8c
Коммит 1cf0af636c
1 изменённых файлов: 2 добавлений и 2 удалений

4
mjit.c
Просмотреть файл

@ -745,7 +745,7 @@ skip_cleaning_object_files(struct rb_mjit_unit_list *list)
/* No mutex for list, assuming MJIT worker does not exist yet since it's immediately after fork. */ /* No mutex for list, assuming MJIT worker does not exist yet since it's immediately after fork. */
list_for_each_safe(&list->head, unit, next, unode) { list_for_each_safe(&list->head, unit, next, unode) {
#ifndef _MSC_VER /* Actualy mswin does not reach here since it doesn't have fork */ #ifndef _MSC_VER /* Actually mswin does not reach here since it doesn't have fork */
if (unit->o_file) unit->o_file_inherited_p = TRUE; if (unit->o_file) unit->o_file_inherited_p = TRUE;
#endif #endif
@ -763,7 +763,7 @@ skip_cleaning_object_files(struct rb_mjit_unit_list *list)
call the JIT-ed code. call the JIT-ed code.
But unfortunately current MJIT-generated code is process-specific. After the fork, But unfortunately current MJIT-generated code is process-specific. After the fork,
JIT-ed code created by parent Ruby process cannnot be used in child Ruby process JIT-ed code created by parent Ruby process cannot be used in child Ruby process
because the code could rely on inline cache values (ivar's IC, send's CC) which because the code could rely on inline cache values (ivar's IC, send's CC) which
may vary between processes after fork or embed some process-specific addresses. may vary between processes after fork or embed some process-specific addresses.