Module: kamailio Branch: master Commit: 1fcf99817580379d3e7550d1d874050a3e0315bc URL: https://github.com/kamailio/kamailio/commit/1fcf99817580379d3e7550d1d874050a...
Author: Xenofon Karamanos xk@gilawa.com Committer: Henning Westerholt hw@gilawa.com Date: 2024-02-02T13:16:08Z
file_out: make worker sleep period configurable, to allow to adapt performance parameters
---
Modified: src/modules/file_out/doc/file_out_admin.xml Modified: src/modules/file_out/file_out.c
---
Diff: https://github.com/kamailio/kamailio/commit/1fcf99817580379d3e7550d1d874050a... Patch: https://github.com/kamailio/kamailio/commit/1fcf99817580379d3e7550d1d874050a...
---
diff --git a/src/modules/file_out/doc/file_out_admin.xml b/src/modules/file_out/doc/file_out_admin.xml index 3054af61672..bcb3f5d14e9 100644 --- a/src/modules/file_out/doc/file_out_admin.xml +++ b/src/modules/file_out/doc/file_out_admin.xml @@ -135,6 +135,25 @@ modparam("file_out", "extension", ".txt") <programlisting format="linespecific"> ... modparam("file_out", "interval_seconds", "300") +... + </programlisting> + </example> + + <title> + <varname>worker_usleep</varname> (int)</title> + <para> + The time in microseconds which worker will sleep for until next iteration. + </para> + <para> + <emphasis> + Default value is <quote>10000</quote> (10 ms). + </emphasis> + </para> + <example> + <title>Set <varname>worker_usleep</varname> parameter</title> + <programlisting format="linespecific"> +... +modparam("file_out", "worker_usleep", "1000") ... </programlisting> </example> diff --git a/src/modules/file_out/file_out.c b/src/modules/file_out/file_out.c index 1b9bfba7bb0..dada154eb12 100644 --- a/src/modules/file_out/file_out.c +++ b/src/modules/file_out/file_out.c @@ -61,6 +61,7 @@ char *fo_base_folder = "/var/log/kamailio/file_out/"; char *fo_base_filename[FO_MAX_FILES] = {""}; char *fo_extension = ".out"; int fo_interval_seconds = 10 * 60; +int fo_worker_usleep = 10000;
/* Shared variables */ fo_queue_t *fo_queue = NULL; @@ -78,7 +79,8 @@ static param_export_t params[] = { {"base_folder", PARAM_STRING, &fo_base_folder}, {"base_filename", PARAM_STRING | PARAM_USE_FUNC, &fo_add_filename}, {"interval_seconds", PARAM_INT, &fo_interval_seconds}, - {"extension", PARAM_STRING, &fo_extension}, {0, 0, 0}}; + {"extension", PARAM_STRING, &fo_extension}, + {"worker_usleep", PARAM_INT, &fo_worker_usleep}, {0, 0, 0}};
struct module_exports exports = { "file_out", /* module name */ @@ -139,7 +141,7 @@ static int child_init(int rank) return 0; }
- pid = fork_process(PROC_NOCHLDINIT, "log_writ", 1); + pid = fork_process(PROC_NOCHLDINIT, "fo_writer", 1); if(pid < 0) { LM_ERR("fork failed\n"); return -1; /* error */ @@ -159,7 +161,7 @@ static int child_init(int rank) /* update the local config framework structures */ cfg_update();
- usleep(10000); + usleep(fo_worker_usleep); fo_log_writer_process(rank); } // return 0;