summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mjit.c27
-rw-r--r--mjit.h2
-rw-r--r--vm.c2
3 files changed, 0 insertions, 31 deletions
diff --git a/mjit.c b/mjit.c
index 564d10db17..5c2042bd82 100644
--- a/mjit.c
+++ b/mjit.c
@@ -937,33 +937,6 @@ mjit_finish(bool close_handle_p)
verbose(1, "Successful MJIT finish");
}
-// Called by rb_vm_mark() to mark iseq being JIT-ed and iseqs in the unit queue.
-void
-mjit_mark(void)
-{
- if (!mjit_enabled)
- return;
- RUBY_MARK_ENTER("mjit");
-
- struct rb_mjit_unit *unit = NULL;
- CRITICAL_SECTION_START(4, "mjit_mark");
- list_for_each(&unit_queue.head, unit, unode) {
- if (unit->iseq) { // ISeq is still not GCed
- VALUE iseq = (VALUE)unit->iseq;
- CRITICAL_SECTION_FINISH(4, "mjit_mark rb_gc_mark");
-
- // Don't wrap critical section with this. This may trigger GC,
- // and in that case mjit_gc_start_hook causes deadlock.
- rb_gc_mark(iseq);
-
- CRITICAL_SECTION_START(4, "mjit_mark rb_gc_mark");
- }
- }
- CRITICAL_SECTION_FINISH(4, "mjit_mark");
-
- RUBY_MARK_LEAVE("mjit");
-}
-
// Called by rb_iseq_mark() to mark cc_entries captured for MJIT
void
mjit_mark_cc_entries(const struct rb_iseq_constant_body *const body)
diff --git a/mjit.h b/mjit.h
index a523bc9512..89d9a7ae85 100644
--- a/mjit.h
+++ b/mjit.h
@@ -98,7 +98,6 @@ extern void mjit_gc_start_hook(void);
extern void mjit_gc_exit_hook(void);
extern void mjit_free_iseq(const rb_iseq_t *iseq);
extern void mjit_update_references(const rb_iseq_t *iseq);
-extern void mjit_mark(void);
extern struct mjit_cont *mjit_cont_new(rb_execution_context_t *ec);
extern void mjit_cont_free(struct mjit_cont *cont);
extern void mjit_add_class_serial(rb_serial_t class_serial);
@@ -201,7 +200,6 @@ static inline void mjit_cont_free(struct mjit_cont *cont){}
static inline void mjit_gc_start_hook(void){}
static inline void mjit_gc_exit_hook(void){}
static inline void mjit_free_iseq(const rb_iseq_t *iseq){}
-static inline void mjit_mark(void){}
static inline void mjit_add_class_serial(rb_serial_t class_serial){}
static inline void mjit_remove_class_serial(rb_serial_t class_serial){}
static inline VALUE mjit_exec(rb_execution_context_t *ec) { return Qundef; /* unreachable */ }
diff --git a/vm.c b/vm.c
index ee28a2d4ad..0c2ffd9004 100644
--- a/vm.c
+++ b/vm.c
@@ -2594,8 +2594,6 @@ rb_vm_mark(void *ptr)
rb_gc_mark_values(RUBY_NSIG, vm->trap_list.cmd);
rb_id_table_foreach_values(vm->negative_cme_table, vm_mark_negative_cme, NULL);
-
- mjit_mark();
}
RUBY_MARK_LEAVE("vm");