diff --git a/profiling/src/config.rs b/profiling/src/config.rs index 1086b245aea..bae4c06521e 100644 --- a/profiling/src/config.rs +++ b/profiling/src/config.rs @@ -206,42 +206,45 @@ pub(crate) unsafe fn profiling_enabled() -> bool { /// This function must only be called after config has been initialized in /// rinit, and before it is uninitialized in mshutdown. pub(crate) unsafe fn profiling_experimental_features_enabled() -> bool { - get_bool(ProfilingExperimentalFeaturesEnabled, false) + profiling_enabled() && get_bool(ProfilingExperimentalFeaturesEnabled, false) } /// # Safety /// This function must only be called after config has been initialized in /// rinit, and before it is uninitialized in mshutdown. pub(crate) unsafe fn profiling_endpoint_collection_enabled() -> bool { - get_bool(ProfilingEndpointCollectionEnabled, true) + profiling_enabled() && get_bool(ProfilingEndpointCollectionEnabled, true) } /// # Safety /// This function must only be called after config has been initialized in /// rinit, and before it is uninitialized in mshutdown. pub(crate) unsafe fn profiling_experimental_cpu_time_enabled() -> bool { - get_bool(ProfilingExperimentalCpuTimeEnabled, true) + profiling_experimental_features_enabled() + || profiling_enabled() && get_bool(ProfilingExperimentalCpuTimeEnabled, true) } /// # Safety /// This function must only be called after config has been initialized in /// rinit, and before it is uninitialized in mshutdown. pub(crate) unsafe fn profiling_allocation_enabled() -> bool { - get_bool(ProfilingAllocationEnabled, true) + profiling_enabled() && get_bool(ProfilingAllocationEnabled, true) } /// # Safety /// This function must only be called after config has been initialized in /// rinit, and before it is uninitialized in mshutdown. pub(crate) unsafe fn profiling_experimental_timeline_enabled() -> bool { - get_bool(ProfilingExperimentalTimelineEnabled, false) + profiling_experimental_features_enabled() + || profiling_enabled() && get_bool(ProfilingExperimentalTimelineEnabled, false) } /// # Safety /// This function must only be called after config has been initialized in /// rinit, and before it is uninitialized in mshutdown. pub(crate) unsafe fn profiling_experimental_exception_enabled() -> bool { - get_bool(ProfilingExperimentalExceptionEnabled, false) + profiling_experimental_features_enabled() + || profiling_enabled() && get_bool(ProfilingExperimentalExceptionEnabled, false) } /// # Safety diff --git a/profiling/src/lib.rs b/profiling/src/lib.rs index 8e41ef3579e..4e5664c29c1 100644 --- a/profiling/src/lib.rs +++ b/profiling/src/lib.rs @@ -478,20 +478,14 @@ extern "C" fn rinit(_type: c_int, _module_number: c_int) -> ZendResult { log_level, output_pprof, ) = unsafe { - let profiling_enabled = config::profiling_enabled(); - let profiling_experimental_features_enabled = - profiling_enabled && config::profiling_experimental_features_enabled(); ( - profiling_enabled, - profiling_experimental_features_enabled, - profiling_enabled && config::profiling_endpoint_collection_enabled(), - profiling_experimental_features_enabled - || profiling_enabled && config::profiling_experimental_cpu_time_enabled(), - profiling_enabled && config::profiling_allocation_enabled(), - profiling_experimental_features_enabled - || profiling_enabled && config::profiling_experimental_timeline_enabled(), - profiling_experimental_features_enabled - || profiling_enabled && config::profiling_experimental_exception_enabled(), + config::profiling_enabled(), + config::profiling_experimental_features_enabled(), + config::profiling_endpoint_collection_enabled(), + config::profiling_experimental_cpu_time_enabled(), + config::profiling_allocation_enabled(), + config::profiling_experimental_timeline_enabled(), + config::profiling_experimental_exception_enabled(), config::profiling_experimental_exception_sampling_distance(), config::profiling_log_level(), config::profiling_output_pprof(),