From 2f8499788a3065160804f908c6af040b0042ea4c Mon Sep 17 00:00:00 2001 From: Joshua Colp <jcolp@digium.com> Date: Mon, 5 Nov 2018 14:30:54 +0000 Subject: [PATCH] stasis: Clarify lifetime of topics. As mentioned in the comment I've added in the code there is no ability to unsubscribe all subscribers from a topic and explicitly destroy it. This is not currently a problem as we have two types of topics: Long lived topics which exist for the lifetime of the system. Ephemeral topics which feed a long lived topic. In the case of the ephemeral topics there is no subscriber which does not have its lifetime managed by the same entity that has created the topic. This ensures that when the topic is being unreferenced the subscribers are also unsubscribed and destroyed, allowing the topic to ultimately be destroyed as well. Change-Id: Ic5e244da7b16b1895ba1fc5ece481ebba5809c9a --- include/asterisk/stasis.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/asterisk/stasis.h b/include/asterisk/stasis.h index f1a09f7230..25faa467b1 100644 --- a/include/asterisk/stasis.h +++ b/include/asterisk/stasis.h @@ -483,6 +483,11 @@ struct stasis_topic; * \return New topic instance. * \return \c NULL on error. * \since 12 + * + * \note There is no explicit ability to unsubscribe all subscribers + * from a topic and destroy it. As a result the topic can persist until + * the last subscriber unsubscribes itself even if there is no + * publisher. */ struct stasis_topic *stasis_topic_create(const char *name); -- GitLab