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
This commit is contained in:
Joshua Colp 2018-11-05 14:30:54 +00:00
parent a6d1723727
commit 27897a850d
1 changed files with 5 additions and 0 deletions

View 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);