diff --git a/src/include/switch_types.h b/src/include/switch_types.h index df9d01c982..6c1274e4a1 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -296,12 +296,15 @@ SWITCH_DECLARE_DATA extern switch_directories SWITCH_GLOBAL_dirs; #define SWITCH_MAX_STACKS 32 #define SWITCH_THREAD_STACKSIZE 240 * 1024 -#define SWITCH_RECOMMENDED_BUFFER_SIZE 8000 +#define SWITCH_MAX_INTERVAL 120 +#define SWITCH_RECOMMENDED_BUFFER_SIZE 64 * (SWITCH_MAX_INTERVAL + 10) #define SWITCH_MAX_CODECS 30 #define SWITCH_MAX_STATE_HANDLERS 30 #define SWITCH_CORE_QUEUE_LEN 100000 #define SWITCH_MAX_MANAGEMENT_BUFFER_LEN 1024 * 8 +#define SWITCH_ACCEPTABLE_INTERVAL(_i) (_i <= SWITCH_MAX_INTERVAL && (_i % 10) == 0) + typedef enum { SWITCH_CPF_SCREEN = (1 << 0), SWITCH_CPF_HIDE_NAME = (1 << 1), diff --git a/src/switch_time.c b/src/switch_time.c index 2260b2f37d..e24f83b68d 100644 --- a/src/switch_time.c +++ b/src/switch_time.c @@ -58,7 +58,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(softtimer_shutdown); SWITCH_MODULE_RUNTIME_FUNCTION(softtimer_runtime); SWITCH_MODULE_DEFINITION(softtimer, softtimer_load, softtimer_shutdown, softtimer_runtime); -#define MAX_ELEMENTS 1000 +#define MAX_ELEMENTS 360 #define IDLE_SPEED 100 #define STEP_MS 1 #define STEP_MIC 1000 @@ -340,14 +340,11 @@ SWITCH_MODULE_RUNTIME_FUNCTION(softtimer_runtime) tick = 0; } - for (x = 0; x < MAX_ELEMENTS; x++) { - int i = x, index; - if (i == 0) { - i = 1; - } - - index = (current_ms % i == 0) ? i : 0; - + + for (x = 1; x <= MAX_ELEMENTS; x++) { + int i = x * 10; + int index = (current_ms % i == 0) ? i : 0; + if (TIMER_MATRIX[index].count) { TIMER_MATRIX[index].tick++; if (TIMER_MATRIX[index].tick == MAX_TICK) {