* Revert the reverse the addons iteration of r35121.

* The media_addon_server before unloading addons need to be sure the nodes are deleted.
For instance, applications could keep references on global nodes, thus preventing deletion.
To release all references, the media_addon server uses a new method BMediaRosterEx::ReleaseNodeAll().
* Quit the MediaRoster looper when quitting media_addon server before unloading addons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35133 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2010-01-17 20:05:01 +00:00
parent d9626569fb
commit 6aee58a4cb
7 changed files with 91 additions and 9 deletions
+1
View File
@@ -38,6 +38,7 @@ public:
status_t IncrementAddonFlavorInstancesCount(media_addon_id addonid, int32 flavorid);
status_t DecrementAddonFlavorInstancesCount(media_addon_id addonid, int32 flavorid);
status_t ReleaseNodeAll(const media_node& node);
status_t SetNodeCreator(media_node_id node, team_id creator);
+1
View File
@@ -53,6 +53,7 @@ enum {
SERVER_GET_LIVE_NODES,
SERVER_GET_NODE_FOR,
SERVER_RELEASE_NODE,
SERVER_RELEASE_NODE_ALL,
SERVER_REGISTER_NODE,
SERVER_UNREGISTER_NODE,
SERVER_GET_DORMANT_NODE_FOR,