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]