diff options
author | Richard Mudgett <rmudgett@digium.com> | 2016-01-06 19:09:59 -0600 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2016-01-08 22:03:28 -0600 |
commit | f02ac1b7f954a3445da9007b3d9bf4f0706e750a (patch) | |
tree | 69c75f29f173ffb704fc7fcd27fe67e22555ba07 | |
parent | ec1f1c6742d55dac75f715422ce4c0191e0f216e (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.c | 19 |
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; |