Selaa lähdekoodia

prevent negative timeout settings (#482)

* prevent negative timeout settings

* fix misleading comment
Kevin Wan 4 vuotta sitten
vanhempi
sitoutus
086113c843
2 muutettua tiedostoa jossa 3 lisäystä ja 3 poistoa
  1. 1 2
      zrpc/config.go
  2. 2 1
      zrpc/internal/clientinterceptors/timeoutinterceptor.go

+ 1 - 2
zrpc/config.go

@@ -14,8 +14,7 @@ type (
 		Auth          bool               `json:",optional"`
 		Redis         redis.RedisKeyConf `json:",optional"`
 		StrictControl bool               `json:",optional"`
-		// pending forever is not allowed
-		// never set it to 0, if zero, the underlying will set to 2s automatically
+		// setting 0 means no timeout
 		Timeout      int64 `json:",default=2000"`
 		CpuThreshold int64 `json:",default=900,range=[0:1000]"`
 	}

+ 2 - 1
zrpc/internal/clientinterceptors/timeoutinterceptor.go

@@ -11,9 +11,10 @@ import (
 func TimeoutInterceptor(timeout time.Duration) grpc.UnaryClientInterceptor {
 	return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn,
 		invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
-		if timeout == 0 {
+		if timeout <= 0 {
 			return invoker(ctx, method, req, reply, cc, opts...)
 		}
+
 		ctx, cancel := contextx.ShrinkDeadline(ctx, timeout)
 		defer cancel()
 		return invoker(ctx, method, req, reply, cc, opts...)