Changeset: be1494cb6090 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=be1494cb6090
Modified Files:
gdk/gdk.h
gdk/gdk_cross.c
Branch: qcancel
Log Message:
small optimization
diffs (47 lines):
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -2114,8 +2114,8 @@ gdk_export BAT *BATsample_with_seed(BAT
#define MAXPARAMS 32
#define CHECK_QRY_TIMEOUT_STEP 10000
-#define _CHECK_TIMEOUT(starttime, querytimeout) \
- if (querytimeout && starttime && (GDKusec() - starttime) >
querytimeout) { \
+#define _CHECK_TIMEOUT(timeoffset) \
+ if (timeoffset && (GDKusec() > timeoffset)) { \
GDKerror("Timeout was reached!"); \
return GDK_FAIL; \
}
diff --git a/gdk/gdk_cross.c b/gdk/gdk_cross.c
--- a/gdk/gdk_cross.c
+++ b/gdk/gdk_cross.c
@@ -28,6 +28,7 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
cnt1 = canditer_init(&ci1, l, sl);
cnt2 = canditer_init(&ci2, r, sr);
QryCtx *qry_ctx = MT_thread_get_qry_ctx();
+ lng timeoffset = (qry_ctx->starttime && qry_ctx->querytimeout) ?
(qry_ctx->starttime + qry_ctx->querytimeout) : 0;
if (max_one && cnt1 > 0 && cnt2 > 1) {
GDKerror("more than one match");
@@ -54,8 +55,8 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
for (i = 0; i < cnt1; i++) {
oid x = canditer_next(&ci1);
for (j = 0; j < cnt2; j++) {
- if ((((i+1)*(j+1)) % CHECK_QRY_TIMEOUT_STEP) ==
0)
- _CHECK_TIMEOUT(qry_ctx->starttime,
qry_ctx->querytimeout);
+ if (timeoffset && ((((i+1)*(j+1)) %
CHECK_QRY_TIMEOUT_STEP) == 0))
+ _CHECK_TIMEOUT(timeoffset);
*p++ = x;
}
}
@@ -71,8 +72,8 @@ BATsubcross(BAT **r1p, BAT **r2p, BAT *l
p = (oid *) Tloc(bn2, 0);
for (i = 0; i < cnt1; i++) {
for (j = 0; j < cnt2; j++) {
- if ((((i+1)*(j+1)) %
CHECK_QRY_TIMEOUT_STEP) == 0)
-
_CHECK_TIMEOUT(qry_ctx->starttime, qry_ctx->querytimeout);
+ if (timeoffset && ((((i+1)*(j+1)) %
CHECK_QRY_TIMEOUT_STEP) == 0))
+ _CHECK_TIMEOUT(timeoffset);
*p++ = canditer_next(&ci2);
}
canditer_reset(&ci2);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list