提交 b472edf4 authored 作者: Christopher Rienzo's avatar Christopher Rienzo

switch to a signal in mod_posix_timer that doesn't conflict with valgrind

上级 2b48cf87
...@@ -46,7 +46,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_posix_timer_shutdown); ...@@ -46,7 +46,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_posix_timer_shutdown);
SWITCH_MODULE_RUNTIME_FUNCTION(mod_posix_timer_runtime); SWITCH_MODULE_RUNTIME_FUNCTION(mod_posix_timer_runtime);
SWITCH_MODULE_DEFINITION(mod_posix_timer, mod_posix_timer_load, mod_posix_timer_shutdown, mod_posix_timer_runtime); SWITCH_MODULE_DEFINITION(mod_posix_timer, mod_posix_timer_load, mod_posix_timer_shutdown, mod_posix_timer_runtime);
#define SIG SIGRTMAX #define SIG (SIGRTMAX - 1)
#define MAX_INTERVAL 2000 /* ms */ #define MAX_INTERVAL 2000 /* ms */
#define TIMERS_PER_INTERVAL 4 #define TIMERS_PER_INTERVAL 4
#define MAX_ACTIVE_TIMERS 256 /* one byte */ #define MAX_ACTIVE_TIMERS 256 /* one byte */
......
...@@ -115,7 +115,7 @@ static void *module_thread(void *dummy) ...@@ -115,7 +115,7 @@ static void *module_thread(void *dummy)
/** /**
* Load mod_posix_timer and start the runtime thread * Load mod_posix_timer and start the runtime thread
*/ */
static void load_module() static int load_module()
{ {
fail_count = 0; fail_count = 0;
warn_count = 0; warn_count = 0;
...@@ -124,9 +124,11 @@ static void load_module() ...@@ -124,9 +124,11 @@ static void load_module()
session_count = 0; session_count = 0;
last_reported_session_count = 0; last_reported_session_count = 0;
shutdown = 0; shutdown = 0;
mod_posix_timer_load(&mod, &pool); if (mod_posix_timer_load(&mod, &pool) != SWITCH_STATUS_SUCCESS) {
return -1;
}
timer_if = mod->timer; timer_if = mod->timer;
pthread_create(&module_runtime_thread_id, NULL, module_thread, NULL); return pthread_create(&module_runtime_thread_id, NULL, module_thread, NULL);
} }
/** /**
...@@ -444,12 +446,14 @@ int main (int argc, char **argv) ...@@ -444,12 +446,14 @@ int main (int argc, char **argv)
struct timespec ts; struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts); clock_gettime(CLOCK_REALTIME, &ts);
srand48(ts.tv_nsec); srand48(ts.tv_nsec);
load_module(); if (load_module() == -1) {
return -1;
}
//test_timer(20, 5.0f, .2f, 1000); //test_timer(20, 5.0f, .2f, 1000);
//test_timer_session(intervals, interval_weights, 4, 2 * 86400.0f, 90, 2000, 30.0, 5.0f); //test_timer_session(intervals, interval_weights, 4, 2 * 86400.0f, 90, 2000, 30.0, 5.0f);
while(1) { while(1) {
/* stop periodically to trigger timer shutdown */ /* stop periodically to trigger timer shutdown */
test_timer_session(intervals, interval_weights, 1, 60, 150, 3000, 30.0, 5.0f); test_timer_session(intervals, interval_weights, 1, 60, 150, 190 /* 3000 */, 30.0, 5.0f);
} }
//test_timer(1000, 5.0f, 1); //test_timer(1000, 5.0f, 1);
//test_timer(20, 5.0f, .2f, 1000); //test_timer(20, 5.0f, .2f, 1000);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论