in models/v3/msgs/msgs.go [62:83]
func (n Notifications) Promise(ctx context.Context) error {
if n.promise == nil {
return nil
}
defer func() {
conn.PromisePool.Put(n.promise)
}()
if ctx.Err() != nil {
metrics.Promise(context.Background(), ctx.Err())
return ctx.Err()
}
select {
case <-ctx.Done():
metrics.Promise(context.Background(), models.ErrPromiseTimeout)
return models.ErrPromiseTimeout
case e := <-n.promise:
metrics.Promise(context.Background(), e)
return e
}
}