vcl: fix sleep time in ldp_pselect() 17/33317/1
authorliuyacan <liuyacan@corp.netease.com>
Mon, 2 Aug 2021 02:01:39 +0000 (10:01 +0800)
committerliuyacan <liuyacan@corp.netease.com>
Mon, 2 Aug 2021 02:06:10 +0000 (10:06 +0800)
Type: fix

Signed-off-by: liuyacan <liuyacan@corp.netease.com>
Change-Id: Ic9c5b23be4bde88880972be35525f12fa2c6dc10

src/vcl/ldp.c

index de886ca..4b21c7d 100644 (file)
@@ -724,10 +724,11 @@ ldp_pselect (int nfds, fd_set * __restrict readfds,
       time_out = (timeout->tv_sec == 0 && timeout->tv_nsec == 0) ?
        (f64) 0 : (f64) timeout->tv_sec + (f64) timeout->tv_nsec / (f64) 1e9;
 
+      time_out += clib_time_now (&ldpw->clib_time);
+
       /* select as fine grained sleep */
       if (!nfds)
        {
-         time_out += clib_time_now (&ldpw->clib_time);
          while (clib_time_now (&ldpw->clib_time) < time_out)
            ;
          return 0;