server.go
func (ctx *RequestCtx) Err() error {
	select {
	case <-ctx.s.done:
		return context.Canceled
	default:
		return nil
	}
}
func (ctx *RequestCtx) Err() error {
	select {
	case <-ctx.s.done:
		return context.Canceled
	default:
		return nil
	}
}
func ( ctx * RequestCtx ) Err ( ) error { select { case <- ctx . s . done : return context . Canceled default : return nil } }
// Err returns a non-nil error value after Done is closed,
// successive calls to Err return the same error.
// If Done is not yet closed, Err returns nil.
// If Done is closed, Err returns a non-nil error explaining why:
// Canceled if the context was canceled (via server Shutdown)
// or DeadlineExceeded if the context's deadline passed.
Err returns a non - nil error value after Done is closed successive calls to Err return the same error . If Done is not yet closed Err returns nil . If Done is closed Err returns a non - nil error explaining why : Canceled if the context was canceled ( via server Shutdown ) or DeadlineExceeded if the context s deadline passed .