Fix M(), M2() macros in VAT 52/5052/2
authorFilip Tehlar <ftehlar@cisco.com>
Tue, 7 Feb 2017 12:29:47 +0000 (13:29 +0100)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 7 Feb 2017 15:43:14 +0000 (15:43 +0000)
Change-Id: I76593632cde97f7cb80bbc395735404f39f3bd3f
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
src/vlibapi/vat_helper_macros.h

index 5772233..57ad520 100644 (file)
@@ -45,29 +45,31 @@ do {                                                            \
 #define W(ret)                                 \
 do {                                            \
     f64 timeout = vat_time_now (vam) + 1.0;     \
+    ret = -99;                                  \
                                                 \
     while (vat_time_now (vam) < timeout) {      \
         if (vam->result_ready == 1) {           \
             ret = vam->retval;                  \
+            break;                              \
         }                                       \
         vat_suspend (vam->vlib_main, 1e-5);     \
     }                                           \
-    ret = -99;                                  \
 } while(0);
 
 /* W2: wait for results, with timeout */
 #define W2(ret, body)                          \
 do {                                            \
     f64 timeout = vat_time_now (vam) + 1.0;     \
+    ret = -99;                                  \
                                                 \
     while (vat_time_now (vam) < timeout) {      \
         if (vam->result_ready == 1) {           \
          (body);                               \
          ret = vam->retval;                    \
+          break;                                \
         }                                       \
         vat_suspend (vam->vlib_main, 1e-5);     \
     }                                           \
-    ret = -99;                                 \
 } while(0);