enable optimal defaults on linux kernels that can support newer features.
This commit is contained in:
parent
bef6f0f40d
commit
0b51aca321
|
@ -1662,9 +1662,6 @@ static void switch_load_core_config(const char *file)
|
|||
switch_time_set_monotonic(switch_true(val));
|
||||
} else if (!strcasecmp(var, "enable-softtimer-timerfd")) {
|
||||
switch_time_set_timerfd(switch_true(val));
|
||||
if (switch_true(val)) {
|
||||
switch_clear_flag((&runtime), SCF_CALIBRATE_CLOCK);
|
||||
}
|
||||
} else if (!strcasecmp(var, "enable-clock-nanosleep")) {
|
||||
switch_time_set_nanosleep(switch_true(val));
|
||||
} else if (!strcasecmp(var, "enable-cond-yield")) {
|
||||
|
|
|
@ -61,14 +61,20 @@ static int MONO = 1;
|
|||
static int MONO = 0;
|
||||
#endif
|
||||
|
||||
/* clock_nanosleep works badly on some kernels but really well on others.
|
||||
timerfd seems to work well as long as it exists so if you have timerfd we'll also enable clock_nanosleep by default.
|
||||
*/
|
||||
#if defined(HAVE_TIMERFD_CREATE)
|
||||
// We'll default this to 1 after we have had some positive feedback that it works well
|
||||
static int TFD = 0;
|
||||
static int TFD = 1;
|
||||
#if defined(HAVE_CLOCK_NANOSLEEP)
|
||||
static int NANO = 1;
|
||||
#else
|
||||
static int NANO = 0;
|
||||
#endif
|
||||
#else
|
||||
static int TFD = 0;
|
||||
#endif
|
||||
|
||||
static int NANO = 0;
|
||||
#endif
|
||||
|
||||
static int OFFSET = 0;
|
||||
|
||||
|
@ -326,6 +332,7 @@ SWITCH_DECLARE(void) switch_time_set_timerfd(switch_bool_t enable)
|
|||
#if defined(HAVE_TIMERFD_CREATE)
|
||||
TFD = enable ? 1 : 0;
|
||||
switch_time_sync();
|
||||
|
||||
#else
|
||||
TFD = 0;
|
||||
#endif
|
||||
|
@ -1116,6 +1123,10 @@ SWITCH_MODULE_LOAD_FUNCTION(softtimer_load)
|
|||
switch_time_set_cond_yield(SWITCH_FALSE);
|
||||
}
|
||||
|
||||
if (TFD) {
|
||||
switch_clear_flag((&runtime), SCF_CALIBRATE_CLOCK);
|
||||
}
|
||||
|
||||
if (switch_test_flag((&runtime), SCF_CALIBRATE_CLOCK)) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Calibrating timer, please wait...\n");
|
||||
switch_time_calibrate_clock();
|
||||
|
|
Loading…
Reference in New Issue