Changeset: 2fd38e48c453 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/2fd38e48c453 Modified Files: monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_runtime.c Branch: default Log Message:
Partly revert commit 7567eee12001 I can't figure out the query queue with recursive calls when multiple dataflow workers are present, but it's broken for sure diffs (40 lines): diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c --- a/monetdb5/mal/mal_interpreter.c +++ b/monetdb5/mal/mal_interpreter.c @@ -751,8 +751,6 @@ str runMALsequence(Client cntxt, MalBlkP nstk->stkdepth = nstk->stksize + stk->stkdepth; nstk->calldepth = stk->calldepth + 1; nstk->up = stk; - /* inherit tag, because it will be used when doing profiling */ - nstk->tag = stk->tag; if (nstk->calldepth > 256) { ret= createException(MAL, "mal.interpreter", MAL_CALLDEPTH_FAIL); GDKfree(nstk); diff --git a/monetdb5/mal/mal_runtime.c b/monetdb5/mal/mal_runtime.c --- a/monetdb5/mal/mal_runtime.c +++ b/monetdb5/mal/mal_runtime.c @@ -222,7 +222,9 @@ runtimeProfileInit(Client cntxt, MalBlkP if (stk->up) { i = qtail; while (i != qhead) { - if (QRYqueue[i].tag == stk->tag) { + if (QRYqueue[i].mb && QRYqueue[i].stk == stk->up) { + QRYqueue[i].stk = stk; + mb->tag = stk->tag = qtag++; MT_lock_unset(&mal_delayLock); return; } @@ -288,9 +290,11 @@ runtimeProfileFinish(Client cntxt, MalBl MT_lock_set(&mal_delayLock); i=qtail; while (i != qhead){ - if (QRYqueue[i].tag == stk->tag) { + if (QRYqueue[i].stk == stk){ if (stk->up){ - // recursive call, just return + // recursive call + QRYqueue[i].stk = stk->up; + mb->tag = stk->tag; MT_lock_unset(&mal_delayLock); return; } _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org