Mercurial > hg > Papers > 2008 > atsuki-master
view paper/src/tableau.cbc @ 0:a67653fda270
Initial revision
author | atsuki |
---|---|
date | Tue, 12 Feb 2008 17:37:48 +0900 |
parents | |
children |
line wrap: on
line source
code tableau(TaskPtr list) { StateDB out; st.hash = get_memory_hash(mem,0); if (lookup_StateDB(&st, &state_db, &out)) { // found in the state database printf("found %d\n",count); while(!(list = next_task_iterator(task_iter))) { // no more branch, go back to the previous one TaskIteratorPtr prev_iter = task_iter->prev; if (!prev_iter) { printf("All done count %d\n",count); memory_usage(); goto ret(0),env; } printf("no more branch %d\n",count); depth--; free_task_iterator(task_iter); task_iter = prev_iter; } // return to previous state // here we assume task list is fixed, we don't have to // recover task list itself restore_memory(task_iter->state->memory); printf("restore list %x next %x\n",(int)list,(int)(list->next)); } else { // one step further depth++; task_iter = create_task_iterator(list,out,task_iter); } printf("depth %d count %d\n", depth, count++); goto list->phils->next(list->phils,list); }