Changeset: e1ffb973e73b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e1ffb973e73b
Modified Files:
        MonetDB5/src/mal/mal_interpreter.mx
Branch: default
Log Message:

Merge head
Prepare the dataflow for proper return to queue.


diffs (32 lines):

diff -r ddd6173a3338 -r e1ffb973e73b MonetDB5/src/mal/mal_interpreter.mx
--- a/MonetDB5/src/mal/mal_interpreter.mx       Sun Oct 24 10:00:14 2010 +0200
+++ b/MonetDB5/src/mal/mal_interpreter.mx       Mon Oct 25 16:46:03 2010 +0200
@@ -576,6 +576,7 @@
 #define DFLOWpending 0         /* runnable */
 #define DFLOWrunning 1         /* currently in progress */
 #define DFLOWwrapup  2         /* done! */
+#define DFLOWretry   3         /* reschedule */
 
 typedef struct queue {
        int size;       /* size of queue */
@@ -1051,6 +1052,7 @@
                                        mnstr_printf(GDKout,"#DFLOWrequeue 
instr  %d pool  " LLFMT " claim "LLFMT"\n#", THRgettid(),  memorypool, 
argclaim+retclaim);
                                        printInstruction(GDKstdout, mb, 0, pci, 
LIST_MAL_STMT | LIST_MAPI);
                                }
+                               /* actually should use DFLOWretry status */
                                throw(MAL,"DFLOWadmission","failed");
                        }
                }
@@ -1346,6 +1348,12 @@
        while(queued || todo != done){
                PARDEBUG mnstr_printf(GDKstdout,"#waiting for results, queued 
%d todo %d done %d\n", queued,todo,done);
                f = q_dequeue(flow->done);
+               if ( f->status == DFLOWretry ){
+                       /* reschedule the instruction */
+                       f->status = DFLOWrunning;
+                       q_requeue(flow->todo, f);
+                       continue;
+               }
                if ( f->flow->stk->wrapup ) /* clean up whatever is called for 
*/
                        (*f->flow->stk->wrapup)(f->flow->cntxt, f->flow->mb, 
f->flow->stk, getInstrPtr(flow->mb, abs(f->pc)));
                f->status = DFLOWwrapup;
_______________________________________________
Checkin-list mailing list
Checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to