Changeset: 92cc3962222a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/92cc3962222a
Modified Files:
        gdk/gdk.h
Branch: Jun2023
Log Message:

Write the TIMEOUT_LOOP macros slightly differently, but equivalently.


diffs (42 lines):

diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2392,20 +2392,32 @@ gdk_export BAT *BATsample_with_seed(BAT 
  * on each iteration */
 #define TIMEOUT_LOOP_IDX(IDX, REPEATS, TIMEOFFSET)                     \
        for (BUN REPS = (IDX = 0, (REPEATS)); REPS > 0; REPS = 0) /* "loops" at 
most once */ \
-               for (BUN CTR1 = 0, END1 = (REPS + CHECK_QRY_TIMEOUT_STEP) >> 
CHECK_QRY_TIMEOUT_SHIFT; CTR1 < END1 && TIMEOFFSET >= 0; CTR1++, TIMEOFFSET = 
GDKexiting() || (TIMEOFFSET > 0 && GDKusec() > TIMEOFFSET) ? -1 : TIMEOFFSET) \
-                       for (BUN CTR2 = 0, END2 = CTR1 == END1 - 1 ? REPS & 
CHECK_QRY_TIMEOUT_MASK : CHECK_QRY_TIMEOUT_STEP; CTR2 < END2; CTR2++, IDX++)
+               for (BUN CTR1 = 0, END1 = (REPS + CHECK_QRY_TIMEOUT_STEP) >> 
CHECK_QRY_TIMEOUT_SHIFT; CTR1 < END1 && TIMEOFFSET >= 0; CTR1++) \
+                       if (GDKexiting() || (TIMEOFFSET > 0 && GDKusec() > 
TIMEOFFSET)) { \
+                               TIMEOFFSET = -1;                        \
+                               break;                                  \
+                       } else                                          \
+                               for (BUN CTR2 = 0, END2 = CTR1 == END1 - 1 ? 
REPS & CHECK_QRY_TIMEOUT_MASK : CHECK_QRY_TIMEOUT_STEP; CTR2 < END2; CTR2++, 
IDX++)
 
 /* declare and use IDX as a loop variable, initializing it to 0 and
  * incrementing it on each iteration */
 #define TIMEOUT_LOOP_IDX_DECL(IDX, REPEATS, TIMEOFFSET)                        
\
        for (BUN IDX = 0, REPS = (REPEATS); REPS > 0; REPS = 0) /* "loops" at 
most once */ \
-               for (BUN CTR1 = 0, END1 = (REPS + CHECK_QRY_TIMEOUT_STEP) >> 
CHECK_QRY_TIMEOUT_SHIFT; CTR1 < END1 && TIMEOFFSET >= 0; CTR1++, TIMEOFFSET = 
GDKexiting() || (TIMEOFFSET > 0 && GDKusec() > TIMEOFFSET) ? -1 : TIMEOFFSET) \
-                       for (BUN CTR2 = 0, END2 = CTR1 == END1 - 1 ? REPS & 
CHECK_QRY_TIMEOUT_MASK : CHECK_QRY_TIMEOUT_STEP; CTR2 < END2; CTR2++, IDX++)
+               for (BUN CTR1 = 0, END1 = (REPS + CHECK_QRY_TIMEOUT_STEP) >> 
CHECK_QRY_TIMEOUT_SHIFT; CTR1 < END1 && TIMEOFFSET >= 0; CTR1++) \
+                       if (GDKexiting() || (TIMEOFFSET > 0 && GDKusec() > 
TIMEOFFSET)) { \
+                               TIMEOFFSET = -1;                        \
+                               break;                                  \
+                       } else                                          \
+                               for (BUN CTR2 = 0, END2 = CTR1 == END1 - 1 ? 
REPS & CHECK_QRY_TIMEOUT_MASK : CHECK_QRY_TIMEOUT_STEP; CTR2 < END2; CTR2++, 
IDX++)
 
 /* there is no user-visible loop variable */
 #define TIMEOUT_LOOP(REPEATS, TIMEOFFSET)                              \
-       for (BUN CTR1 = 0, REPS = (REPEATS), END1 = (REPS + 
CHECK_QRY_TIMEOUT_STEP) >> CHECK_QRY_TIMEOUT_SHIFT; CTR1 < END1 && TIMEOFFSET 
>= 0; CTR1++, TIMEOFFSET = GDKexiting() || (TIMEOFFSET > 0 && GDKusec() > 
TIMEOFFSET) ? -1 : TIMEOFFSET) \
-               for (BUN CTR2 = 0, END2 = CTR1 == END1 - 1 ? REPS & 
CHECK_QRY_TIMEOUT_MASK : CHECK_QRY_TIMEOUT_STEP; CTR2 < END2; CTR2++)
+       for (BUN CTR1 = 0, REPS = (REPEATS), END1 = (REPS + 
CHECK_QRY_TIMEOUT_STEP) >> CHECK_QRY_TIMEOUT_SHIFT; CTR1 < END1 && TIMEOFFSET 
>= 0; CTR1++) \
+               if (GDKexiting() || (TIMEOFFSET > 0 && GDKusec() > TIMEOFFSET)) 
{ \
+                       TIMEOFFSET = -1;                                \
+                       break;                                          \
+               } else                                                  \
+                       for (BUN CTR2 = 0, END2 = CTR1 == END1 - 1 ? REPS & 
CHECK_QRY_TIMEOUT_MASK : CHECK_QRY_TIMEOUT_STEP; CTR2 < END2; CTR2++)
 
 /* break out of the loop (cannot use do/while trick here) */
 #define TIMEOUT_LOOP_BREAK                     \
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to