File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -4110,7 +4110,7 @@ JL_DLLEXPORT int jl_gc_conservative_gc_support_enabled(void)
4110
4110
return jl_atomic_load (& support_conservative_marking );
4111
4111
}
4112
4112
4113
- JL_DLLEXPORT jl_value_t * jl_gc_internal_obj_base_ptr (void * p )
4113
+ static inline jl_value_t * internal_obj_base_ptr (void * p )
4114
4114
{
4115
4115
p = (char * ) p - 1 ;
4116
4116
jl_gc_pagemeta_t * meta = page_metadata (p );
@@ -4203,6 +4203,21 @@ JL_DLLEXPORT jl_value_t *jl_gc_internal_obj_base_ptr(void *p)
4203
4203
return NULL ;
4204
4204
}
4205
4205
4206
+ JL_DLLEXPORT jl_value_t * jl_gc_internal_obj_base_ptr (void * p )
4207
+ {
4208
+ uint8_t restore = gc_all_tls_states == NULL ;
4209
+ if (__unlikely (restore )) {
4210
+ gc_n_threads = jl_atomic_load_acquire (& jl_n_threads );
4211
+ gc_all_tls_states = jl_atomic_load_relaxed (& jl_all_tls_states );
4212
+ }
4213
+ jl_value_t * obj = internal_obj_base_ptr (p );
4214
+ if (__unlikely (restore )) {
4215
+ gc_n_threads = 0 ;
4216
+ gc_all_tls_states = NULL ;
4217
+ }
4218
+ return obj ;
4219
+ }
4220
+
4206
4221
JL_DLLEXPORT size_t jl_gc_max_internal_obj_size (void )
4207
4222
{
4208
4223
return GC_MAX_SZCLASS ;
You can’t perform that action at this time.
0 commit comments