summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2016-01-06 19:09:59 -0600
committerRichard Mudgett <rmudgett@digium.com>2016-01-08 22:03:28 -0600
commitf02ac1b7f954a3445da9007b3d9bf4f0706e750a (patch)
tree69c75f29f173ffb704fc7fcd27fe67e22555ba07
parentec1f1c6742d55dac75f715422ce4c0191e0f216e (diff)
Stasis: Create human friendly taskprocessor/serializer names.
Stasis name formats: subm:<topic>-<seq> -- Stasis subscription mailbox task processor subp:<topic>-<seq> -- Stasis subscription thread pool serializer Change-Id: Id19234b306e3594530bb040bc95d977f18ac7bfd
-rw-r--r--main/stasis.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/main/stasis.c b/main/stasis.c
index 962efc83e..4fb69033f 100644
--- a/main/stasis.c
+++ b/main/stasis.c
@@ -462,22 +462,29 @@ struct stasis_subscription *internal_stasis_subscribe(
}
/* The ao2 lock is used for join_cond. */
- sub = ao2_t_alloc(sizeof(*sub), subscription_dtor, topic->name);
+ sub = ao2_t_alloc(sizeof(*sub), subscription_dtor, stasis_topic_name(topic));
if (!sub) {
return NULL;
}
ast_uuid_generate_str(sub->uniqueid, sizeof(sub->uniqueid));
if (needs_mailbox) {
- /* With a small number of subscribers, a thread-per-sub is
- * acceptable. For larger number of subscribers, a thread
+ char tps_name[AST_TASKPROCESSOR_MAX_NAME + 1];
+
+ /* Create name with seq number appended. */
+ ast_taskprocessor_build_name(tps_name, sizeof(tps_name), "sub%c:%s",
+ use_thread_pool ? 'p' : 'm',
+ stasis_topic_name(topic));
+
+ /*
+ * With a small number of subscribers, a thread-per-sub is
+ * acceptable. For a large number of subscribers, a thread
* pool should be used.
*/
if (use_thread_pool) {
- sub->mailbox = ast_threadpool_serializer(sub->uniqueid, pool);
+ sub->mailbox = ast_threadpool_serializer(tps_name, pool);
} else {
- sub->mailbox = ast_taskprocessor_get(sub->uniqueid,
- TPS_REF_DEFAULT);
+ sub->mailbox = ast_taskprocessor_get(tps_name, TPS_REF_DEFAULT);
}
if (!sub->mailbox) {
return NULL;