At the moment, proxies directly subscribe to (i-e add a match rule to the bus) signals, which means if someone has two instances of the same proxy and unsubscribe from one of them, we end up unsubscribing the other other one too.
I think this should be handled the same way as done in GDBus: the subscription is handled by Connection types for the proxies and it ensures that only one subscriptions for the same interface, service and path can be registered. It also must ensure that unsubscription only happens when all subscribers have unsubscribe (i-e keep a count of subsciptions).
At the moment, proxies directly subscribe to (i-e add a match rule to the bus) signals, which means if someone has two instances of the same proxy and unsubscribe from one of them, we end up unsubscribing the other other one too.
I think this should be handled the same way as done in GDBus: the subscription is handled by Connection types for the proxies and it ensures that only one subscriptions for the same interface, service and path can be registered. It also must ensure that unsubscription only happens when all subscribers have unsubscribe (i-e keep a count of subsciptions).