mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-14 04:54:49 +00:00
fix cpumon
This commit is contained in:
parent
ae13883b2a
commit
0414c789e1
@ -3650,26 +3650,40 @@ static void *ftdm_cpu_monitor_run(ftdm_thread_t *me, void *obj)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ftdm_status_t ftdm_cpu_monitor_start(cpu_monitor_t* monitor)
|
static ftdm_status_t ftdm_cpu_monitor_start(void)
|
||||||
{
|
{
|
||||||
if (ftdm_interrupt_create(&monitor->interrupt, FTDM_INVALID_SOCKET) != FTDM_SUCCESS) {
|
if (ftdm_interrupt_create(&globals.cpu_monitor.interrupt, FTDM_INVALID_SOCKET) != FTDM_SUCCESS) {
|
||||||
ftdm_log(FTDM_LOG_CRIT, "Failed to create CPU monitor interrupt\n");
|
ftdm_log(FTDM_LOG_CRIT, "Failed to create CPU monitor interrupt\n");
|
||||||
return FTDM_FAIL;
|
return FTDM_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ftdm_thread_create_detached(ftdm_cpu_monitor_run, monitor) != FTDM_SUCCESS) {
|
if (ftdm_thread_create_detached(ftdm_cpu_monitor_run, &globals.cpu_monitor) != FTDM_SUCCESS) {
|
||||||
ftdm_log(FTDM_LOG_CRIT, "Failed to create cpu monitor thread!!\n");
|
ftdm_log(FTDM_LOG_CRIT, "Failed to create cpu monitor thread!!\n");
|
||||||
return FTDM_FAIL;
|
return FTDM_FAIL;
|
||||||
}
|
}
|
||||||
return FTDM_SUCCESS;
|
return FTDM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ftdm_cpu_monitor_stop(cpu_monitor_t* monitor)
|
static void ftdm_cpu_monitor_stop(void)
|
||||||
{
|
{
|
||||||
ftdm_interrupt_signal(monitor->interrupt);
|
if (!globals.cpu_monitor.interrupt) {
|
||||||
while(monitor->running) {
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!globals.cpu_monitor.running) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ftdm_interrupt_signal(globals.cpu_monitor.interrupt) != FTDM_SUCCESS) {
|
||||||
|
ftdm_log(FTDM_LOG_CRIT, "Failed to interrupt the CPU monitor\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (globals.cpu_monitor.running) {
|
||||||
ftdm_sleep(10);
|
ftdm_sleep(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ftdm_interrupt_destroy(&globals.cpu_monitor.interrupt);
|
||||||
}
|
}
|
||||||
|
|
||||||
FT_DECLARE(void) ftdm_cpu_monitor_disable(void)
|
FT_DECLARE(void) ftdm_cpu_monitor_disable(void)
|
||||||
@ -3722,7 +3736,7 @@ FT_DECLARE(ftdm_status_t) ftdm_global_configuration(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!ftdm_cpu_monitor_disabled) {
|
if (!ftdm_cpu_monitor_disabled) {
|
||||||
if (ftdm_cpu_monitor_start(&globals.cpu_monitor) != FTDM_SUCCESS) {
|
if (ftdm_cpu_monitor_start() != FTDM_SUCCESS) {
|
||||||
return FTDM_FAIL;
|
return FTDM_FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3745,7 +3759,7 @@ FT_DECLARE(ftdm_status_t) ftdm_global_destroy(void)
|
|||||||
|
|
||||||
globals.running = 0;
|
globals.running = 0;
|
||||||
|
|
||||||
ftdm_cpu_monitor_stop(&globals.cpu_monitor);
|
ftdm_cpu_monitor_stop();
|
||||||
|
|
||||||
globals.span_index = 0;
|
globals.span_index = 0;
|
||||||
|
|
||||||
@ -3780,7 +3794,6 @@ FT_DECLARE(ftdm_status_t) ftdm_global_destroy(void)
|
|||||||
ftdm_mutex_unlock(globals.mutex);
|
ftdm_mutex_unlock(globals.mutex);
|
||||||
ftdm_mutex_destroy(&globals.mutex);
|
ftdm_mutex_destroy(&globals.mutex);
|
||||||
ftdm_mutex_destroy(&globals.span_mutex);
|
ftdm_mutex_destroy(&globals.span_mutex);
|
||||||
ftdm_interrupt_destroy(&globals.cpu_monitor.interrupt);
|
|
||||||
|
|
||||||
memset(&globals, 0, sizeof(globals));
|
memset(&globals, 0, sizeof(globals));
|
||||||
return FTDM_SUCCESS;
|
return FTDM_SUCCESS;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user