diff --git a/src/include/switch_core.h b/src/include/switch_core.h index 4f157a0cc8..ea35537910 100644 --- a/src/include/switch_core.h +++ b/src/include/switch_core.h @@ -1942,6 +1942,7 @@ SWITCH_DECLARE(switch_bool_t) switch_check_network_list_ip_token(const char *ip_ #define switch_check_network_list_ip(_ip_str, _list_name) switch_check_network_list_ip_token(_ip_str, _list_name, NULL) SWITCH_DECLARE(void) switch_time_set_monotonic(switch_bool_t enable); SWITCH_DECLARE(void) switch_time_set_nanosleep(switch_bool_t enable); +SWITCH_DECLARE(void) switch_time_set_cond_yield(switch_bool_t enable); SWITCH_DECLARE(uint32_t) switch_core_min_dtmf_duration(uint32_t duration); SWITCH_DECLARE(uint32_t) switch_core_max_dtmf_duration(uint32_t duration); SWITCH_DECLARE(uint32_t) switch_core_default_dtmf_duration(uint32_t duration); diff --git a/src/switch_core.c b/src/switch_core.c index c1d243580a..abf58511e5 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -1413,6 +1413,8 @@ static void switch_load_core_config(const char *file) switch_time_set_monotonic(switch_true(var)); } else if (!strcasecmp(var, "enable-clock-nanosleep")) { switch_time_set_nanosleep(switch_true(var)); + } else if (!strcasecmp(var, "enable-cond-yield")) { + switch_time_set_cond_yield(switch_true(var)); } else if (!strcasecmp(var, "max-sessions") && !zstr(val)) { switch_core_session_limit(atoi(val)); } else if (!strcasecmp(var, "rtp-start-port") && !zstr(val)) { diff --git a/src/switch_time.c b/src/switch_time.c index 5da9dee516..6d6a78f32d 100644 --- a/src/switch_time.c +++ b/src/switch_time.c @@ -168,6 +168,11 @@ SWITCH_DECLARE(void) switch_time_set_nanosleep(switch_bool_t enable) NANO = enable ? 1 : 0; } +SWITCH_DECLARE(void) switch_time_set_cond_yield(switch_bool_t enable) +{ + globals.use_cond_yield = enable ? 1 : 0; +} + static switch_time_t time_now(int64_t offset) { switch_time_t now;