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

Reply via email to