mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Revert "Revert "Skip ISeq reference for stale_units for debugging""
This reverts commit b79899b56a
.
I wanted to test r67638 first. Now let me try this as well.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b2ffafd238
commit
c2b8cd425e
1 changed files with 15 additions and 1 deletions
16
mjit.c
16
mjit.c
|
@ -177,7 +177,21 @@ free_list(struct rb_mjit_unit_list *list, bool close_handle_p)
|
||||||
list_for_each_safe(&list->head, unit, next, unode) {
|
list_for_each_safe(&list->head, unit, next, unode) {
|
||||||
list_del(&unit->unode);
|
list_del(&unit->unode);
|
||||||
if (!close_handle_p) unit->handle = NULL; /* Skip dlclose in free_unit() */
|
if (!close_handle_p) unit->handle = NULL; /* Skip dlclose in free_unit() */
|
||||||
free_unit(unit);
|
|
||||||
|
if (list == &stale_units) { // `free_unit(unit)` crashes after GC.compact on `stale_units`
|
||||||
|
/*
|
||||||
|
* TODO: REVERT THIS BRANCH
|
||||||
|
* Debug the crash on stale_units w/ GC.compact and just use `free_unit(unit)`!!
|
||||||
|
*/
|
||||||
|
if (unit->handle && dlclose(unit->handle)) {
|
||||||
|
mjit_warning("failed to close handle for u%d: %s", unit->id, dlerror());
|
||||||
|
}
|
||||||
|
clean_object_files(unit);
|
||||||
|
free(unit);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
free_unit(unit);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
list->length = 0;
|
list->length = 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue