stasis: Clarify lifetime of topics.
authorJoshua Colp <jcolp@digium.com>
Mon, 5 Nov 2018 14:30:54 +0000 (14:30 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 5 Nov 2018 14:46:54 +0000 (09:46 -0500)
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

index 8329dd0..2b56b53 100644 (file)
@@ -477,6 +477,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);