wireplumber/lib/wp/private
George Kiagiadakis a245d5fa46 internal-comp-loader: implement before/after dependencies for components
In some cases, requires/wants dependencies are not enough. As we saw in
!617, the m-standard-event-source module needs to be loaded after all
the hooks, otherwise there may be missed events that the hook was
supposed to "catch", but they were delivered before the hook was actually
loaded. In a similar fashion, we have in purpose put all the "monitor"
components at the every end of the array because if we load them earlier,
they will create devices and nodes before all the hooks are in place to
react.

While in standard configuration we can work this around, in extended
user configurations with custom components, it is impossible to do this
without overriding the entire components array.

To fix this properly, introduce before/after dependencies. They work in
a similar fashion as they work with event hooks. They do not implicitly
"pull" any components to be loaded, but they affect the ordering if the
mentioned components are indeed present.

Note that for backwards compatibility reasons and unlike systemd units,
the "requires"/"wants" targets imply an "after" dependency on them.

Fixes: #600
2024-08-31 20:33:42 +03:00
..
internal-comp-loader.c internal-comp-loader: implement before/after dependencies for components 2024-08-31 20:33:42 +03:00
internal-comp-loader.h component-loader: move module loading to a new WpInternalCompLoader object 2023-05-26 13:49:40 +03:00
parse-conf-section.c conf: refactor configuration loading 2024-03-04 07:07:56 +00:00
pipewire-object-mixin.c log: rename "message" level to "notice" and print criticals with "E" 2023-05-18 16:19:49 +03:00
pipewire-object-mixin.h lib: remove WpEndpoint and WpSiEndpoint APIs 2023-04-17 07:48:18 -04:00
registry.c registry: move to a separate file and decouple it from the object manager 2024-03-12 11:55:45 +02:00
registry.h registry: move to a separate file and decouple it from the object manager 2024-03-12 11:55:45 +02:00