add closure queue channel that was missing.

This commit is contained in:
fiatjaf
2023-06-22 09:32:12 -03:00
parent 68648a16b9
commit fd409f6c35

View File

@ -68,12 +68,13 @@ type writeRequest struct {
func NewRelay(ctx context.Context, url string, opts ...RelayOption) *Relay { func NewRelay(ctx context.Context, url string, opts ...RelayOption) *Relay {
ctx, cancel := context.WithCancel(ctx) ctx, cancel := context.WithCancel(ctx)
r := &Relay{ r := &Relay{
URL: NormalizeURL(url), URL: NormalizeURL(url),
connectionContext: ctx, connectionContext: ctx,
connectionContextCancel: cancel, connectionContextCancel: cancel,
Subscriptions: xsync.NewMapOf[*Subscription](), Subscriptions: xsync.NewMapOf[*Subscription](),
okCallbacks: xsync.NewMapOf[func(bool, string)](), okCallbacks: xsync.NewMapOf[func(bool, string)](),
writeQueue: make(chan writeRequest), writeQueue: make(chan writeRequest),
subscriptionChannelCloseQueue: make(chan *Subscription),
} }
for _, opt := range opts { for _, opt := range opts {
@ -141,7 +142,7 @@ func (_ WithAuthHandler) IsRelayOption() {}
var _ RelayOption = (WithAuthHandler)(nil) var _ RelayOption = (WithAuthHandler)(nil)
// String() just prints the relay URL. // String just returns the relay URL.
func (r *Relay) String() string { func (r *Relay) String() string {
return r.URL return r.URL
} }
@ -480,6 +481,7 @@ func (r *Relay) PrepareSubscription(ctx context.Context, filters Filters, opts .
} }
id := sub.GetID() id := sub.GetID()
r.Subscriptions.Store(id, sub) r.Subscriptions.Store(id, sub)
// the subscription ends once the context is canceled // the subscription ends once the context is canceled