func()

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
	}
}