MT#55283 add global bufferpool

These are normally held per thread, but in cases of threads not having
dedicated init/cleanup functions (GLib thread pool), we can use a global
one as fallback.

Fixes #1936

Change-Id: Ia2ff3523e6079baa73e0721862100ec2f8b66c88
(cherry picked from commit 5d613020e6)
(cherry picked from commit 871162b13b)
(cherry picked from commit 97dfc13c9f)
mr12.5.1
Richard Fuchs 7 months ago
parent 7022fa8d09
commit b5d8c695e4

@ -79,6 +79,7 @@ static GQueue rtpe_cli = G_QUEUE_INIT;
GQueue rtpe_control_ng = G_QUEUE_INIT;
GQueue rtpe_control_ng_tcp = G_QUEUE_INIT;
struct bufferpool *shm_bufferpool;
struct bufferpool *rtpe_bufferpool;
struct rtpengine_config rtpe_config = {
// non-zero defaults
@ -1233,6 +1234,7 @@ static void options_free(void) {
static void early_init(void) {
socket_init(); // needed for socktype_udp
rtpe_bufferpool = bufferpool_new(g_malloc, g_free, 64 * 65536);
}
#ifdef WITH_TRANSCODING
@ -1644,6 +1646,7 @@ int main(int argc, char **argv) {
kernel_shutdown_table();
options_free();
bufferpool_cleanup();
bufferpool_destroy(rtpe_bufferpool);
return 0;
}

@ -230,6 +230,8 @@ static void websocket_message_push(struct websocket_conn *wc, websocket_message_
static void websocket_process(void *p, void *up) {
media_bufferpool = rtpe_bufferpool;
struct websocket_conn *wc = p;
mutex_lock(&wc->lock);

@ -229,6 +229,7 @@ extern GQueue rtpe_control_ng;
extern GQueue rtpe_control_ng_tcp;
extern struct bufferpool *shm_bufferpool;
extern struct bufferpool *rtpe_bufferpool;
#endif

@ -24,6 +24,7 @@ unsigned int rtpe_poller_rr_iter;
GString *dtmf_logs;
GQueue rtpe_control_ng = G_QUEUE_INIT;
struct bufferpool *shm_bufferpool;
struct bufferpool *rtpe_bufferpool;
static void __assert_g_string_eq(GString *a, const char *b, unsigned int line) {
if (strcmp(a->str, b) == 0) {

@ -20,6 +20,7 @@ unsigned int rtpe_poller_rr_iter;
GString *dtmf_logs;
GQueue rtpe_control_ng = G_QUEUE_INIT;
struct bufferpool *shm_bufferpool;
struct bufferpool *rtpe_bufferpool;
static str *sdup(char *s) {
str r = STR_INIT(s);

Loading…
Cancel
Save