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 @@ -4113,7 +4113,7 @@ JL_DLLEXPORT int jl_gc_conservative_gc_support_enabled(void)
41134113 return jl_atomic_load (& support_conservative_marking );
41144114}
41154115
4116- JL_DLLEXPORT jl_value_t * jl_gc_internal_obj_base_ptr (void * p )
4116+ static inline jl_value_t * internal_obj_base_ptr (void * p )
41174117{
41184118 p = (char * ) p - 1 ;
41194119 jl_gc_pagemeta_t * meta = page_metadata (p );
@@ -4206,6 +4206,21 @@ JL_DLLEXPORT jl_value_t *jl_gc_internal_obj_base_ptr(void *p)
42064206 return NULL ;
42074207}
42084208
4209+ JL_DLLEXPORT jl_value_t * jl_gc_internal_obj_base_ptr (void * p )
4210+ {
4211+ uint8_t restore = gc_all_tls_states == NULL ;
4212+ if (__unlikely (restore )) {
4213+ gc_n_threads = jl_atomic_load_acquire (& jl_n_threads );
4214+ gc_all_tls_states = jl_atomic_load_relaxed (& jl_all_tls_states );
4215+ }
4216+ jl_value_t * obj = internal_obj_base_ptr (p );
4217+ if (__unlikely (restore )) {
4218+ gc_n_threads = 0 ;
4219+ gc_all_tls_states = NULL ;
4220+ }
4221+ return obj ;
4222+ }
4223+
42094224JL_DLLEXPORT size_t jl_gc_max_internal_obj_size (void )
42104225{
42114226 return GC_MAX_SZCLASS ;
You can’t perform that action at this time.
0 commit comments