@@ -18,7 +18,7 @@ struct ReservationInfo {
1818
1919struct InferKey {
2020 jl_method_instance_t *mi = nullptr ;
21- jl_value_t *owner = nullptr ;
21+ JL_ROOT jl_value_t *owner = nullptr ;
2222};
2323
2424template <> struct llvm ::DenseMapInfo<InferKey> {
@@ -64,15 +64,15 @@ jl_code_instance_t *jl_engine_reserve(jl_method_instance_t *m, jl_value_t *owner
6464 auto tid = jl_atomic_load_relaxed (&ct->tid );
6565 if (([tid, m, owner, ci] () -> bool { // necessary scope block / lambda for unique_lock
6666 jl_unique_gcsafe_lock lock (engine_lock);
67- arraylist_push (&objects_pinned_by_inference_engine , owner);
67+ arraylist_push (&gc_pinned_objects , owner);
6868 InferKey key{m, owner};
6969 if ((signed )Awaiting.size () < tid + 1 )
7070 Awaiting.resize (tid + 1 );
7171 while (1 ) {
7272 auto record = Reservations.find (key);
7373 if (record == Reservations.end ()) {
7474 Reservations[key] = ReservationInfo{tid, ci};
75- arraylist_pop (&objects_pinned_by_inference_engine );
75+ arraylist_pop (&gc_pinned_objects );
7676 return false ;
7777 }
7878 // before waiting, need to run deadlock/cycle detection
@@ -81,7 +81,7 @@ jl_code_instance_t *jl_engine_reserve(jl_method_instance_t *m, jl_value_t *owner
8181 auto wait_tid = record->second .tid ;
8282 while (1 ) {
8383 if (wait_tid == tid) {
84- arraylist_pop (&objects_pinned_by_inference_engine );
84+ arraylist_pop (&gc_pinned_objects );
8585 return true ;
8686 }
8787 if ((signed )Awaiting.size () <= wait_tid)
@@ -99,7 +99,7 @@ jl_code_instance_t *jl_engine_reserve(jl_method_instance_t *m, jl_value_t *owner
9999 lock.wait (engine_wait);
100100 Awaiting[tid] = InferKey{};
101101 }
102- arraylist_pop (&objects_pinned_by_inference_engine );
102+ arraylist_pop (&gc_pinned_objects );
103103 })())
104104 ct->ptls ->engine_nqueued --;
105105 JL_GC_POP ();
0 commit comments