Revert "event: fix Resubscribe deadlock when unsubscribing after inner sub ends (#28359)"

This reverts commit 3a1adc8a6e.
This commit is contained in:
devopsbo3 2023-11-10 12:27:53 -06:00 committed by GitHub
parent 190c6c8923
commit b2c2e00212
2 changed files with 1 additions and 25 deletions

View file

@ -120,7 +120,7 @@ func ResubscribeErr(backoffMax time.Duration, fn ResubscribeErrFunc) Subscriptio
backoffMax: backoffMax, backoffMax: backoffMax,
fn: fn, fn: fn,
err: make(chan error), err: make(chan error),
unsub: make(chan struct{}, 1), unsub: make(chan struct{}),
} }
go s.loop() go s.loop()
return s return s

View file

@ -154,27 +154,3 @@ func TestResubscribeWithErrorHandler(t *testing.T) {
t.Fatalf("unexpected subscription errors %v, want %v", subErrs, expectedSubErrs) t.Fatalf("unexpected subscription errors %v, want %v", subErrs, expectedSubErrs)
} }
} }
func TestResubscribeWithCompletedSubscription(t *testing.T) {
t.Parallel()
quitProducerAck := make(chan struct{})
quitProducer := make(chan struct{})
sub := ResubscribeErr(100*time.Millisecond, func(ctx context.Context, lastErr error) (Subscription, error) {
return NewSubscription(func(unsubscribed <-chan struct{}) error {
select {
case <-quitProducer:
quitProducerAck <- struct{}{}
return nil
case <-unsubscribed:
return nil
}
}), nil
})
// Ensure producer has started and exited before Unsubscribe
close(quitProducer)
<-quitProducerAck
sub.Unsubscribe()
}