1 // Copyright 2018 Gary Burd 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"): you may 4 // not use this file except in compliance with the License. You may obtain 5 // a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 // License for the specific language governing permissions and limitations 13 // under the License. 14 15 // +build go1.7 16 17 package redis 18 19 import "context" 20 21 // GetContext gets a connection using the provided context. 22 // 23 // The provided Context must be non-nil. If the context expires before the 24 // connection is complete, an error is returned. Any expiration on the context 25 // will not affect the returned connection. 26 // 27 // If the function completes without error, then the application must close the 28 // returned connection. 29 func (p *Pool) GetContext(ctx context.Context) (Conn, error) { 30 pc, err := p.get(ctx) 31 if err != nil { 32 return errorConn{err}, err 33 } 34 return &activeConn{p: p, pc: pc}, nil 35 } 36