private void RegisterWithUnsubscriber(IActorRef subscriber)
{
_initiallySubscribedOrUnsubscriber.Match().With<Left<IImmutableSet<IActorRef>>>(v =>
{
if (_initiallySubscribedOrUnsubscriber.CompareAndSet(v,
Either.Left<IImmutableSet<IActorRef>>(v.Value.Add(subscriber))))
{
RegisterWithUnsubscriber(subscriber);
}
}).With<Right<IActorRef>>(unsubscriber =>
{
unsubscriber.Value.Tell( new EventStreamUnsubscriber.Register(subscriber));
});
}