GoRogue icon indicating copy to clipboard operation
GoRogue copied to clipboard

Add Alternate Implementation or Flag for MessageBus that Allows Weak References

Open Chris3606 opened this issue 4 years ago • 1 comments

Although it does not fit all use cases, it can be useful to have either a flag for the existing implementation, or a separate message bus implementation that uses weak references for subscribers could be useful. This would trade the bus being an owner for the subscribers being an owner of would allow subscribers to arbitrarily disappear and not have to be removed from the bus to be GCed.

It disallows:

// object would be GCed since no strong reference is being maintained
bus.RegisterSubscriber(new SubscriberObject());

However can be useful for select cases, provided:

  1. It is not a default
  2. The method of activating/deactivating the feature makes it clear what the ramifications are

Chris3606 avatar Oct 03 '21 15:10 Chris3606

I don't think it's feasible to include this in the current version; so this would be a new version of MessageBus, and won't be a breaking change.

Chris3606 avatar Aug 08 '23 22:08 Chris3606