diff options
Diffstat (limited to 'main/stasis_message_router.c')
-rw-r--r-- | main/stasis_message_router.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/main/stasis_message_router.c b/main/stasis_message_router.c index da288e864..a9e458456 100644 --- a/main/stasis_message_router.c +++ b/main/stasis_message_router.c @@ -206,8 +206,8 @@ static void router_dispatch(void *data, } } -struct stasis_message_router *stasis_message_router_create( - struct stasis_topic *topic) +static struct stasis_message_router *stasis_message_router_create_internal( + struct stasis_topic *topic, int use_thread_pool) { int res; RAII_VAR(struct stasis_message_router *, router, NULL, ao2_cleanup); @@ -224,7 +224,11 @@ struct stasis_message_router *stasis_message_router_create( return NULL; } - router->subscription = stasis_subscribe(topic, router_dispatch, router); + if (use_thread_pool) { + router->subscription = stasis_subscribe_pool(topic, router_dispatch, router); + } else { + router->subscription = stasis_subscribe(topic, router_dispatch, router); + } if (!router->subscription) { return NULL; } @@ -233,6 +237,18 @@ struct stasis_message_router *stasis_message_router_create( return router; } +struct stasis_message_router *stasis_message_router_create( + struct stasis_topic *topic) +{ + return stasis_message_router_create_internal(topic, 0); +} + +struct stasis_message_router *stasis_message_router_create_pool( + struct stasis_topic *topic) +{ + return stasis_message_router_create_internal(topic, 1); +} + void stasis_message_router_unsubscribe(struct stasis_message_router *router) { if (!router) { |