Improve "complete" codegen for interleaved state machines
This commit is contained in:
@@ -3284,13 +3284,14 @@ PRESERVE_NONE void complete(Job *job, Context *context) {
|
|||||||
}
|
}
|
||||||
job->prev->next = job->next;
|
job->prev->next = job->next;
|
||||||
job->next->prev = job->prev;
|
job->next->prev = job->prev;
|
||||||
job = job->prev;
|
job = job->next;
|
||||||
|
MUSTTAIL return job->continuation(job, context);
|
||||||
} else {
|
} else {
|
||||||
int temp = context->started++;
|
int temp = context->started++;
|
||||||
job->init(context->queries + temp, context->results + temp, context->root,
|
job->init(context->queries + temp, context->results + temp, context->root,
|
||||||
context->oldestVersionFullPrecision);
|
context->oldestVersionFullPrecision);
|
||||||
|
MUSTTAIL return job->continuation(job, context);
|
||||||
}
|
}
|
||||||
MUSTTAIL return keepGoing(job, context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class NodeT>
|
template <class NodeT>
|
||||||
@@ -4112,12 +4113,13 @@ PRESERVE_NONE void complete(Job *job, Context *context) {
|
|||||||
}
|
}
|
||||||
job->prev->next = job->next;
|
job->prev->next = job->next;
|
||||||
job->next->prev = job->prev;
|
job->next->prev = job->prev;
|
||||||
job = job->prev;
|
job = job->next;
|
||||||
|
MUSTTAIL return job->continuation(job, context);
|
||||||
} else {
|
} else {
|
||||||
int temp = context->started++;
|
int temp = context->started++;
|
||||||
job->init(context, temp);
|
job->init(context, temp);
|
||||||
|
MUSTTAIL return job->continuation(job, context);
|
||||||
}
|
}
|
||||||
MUSTTAIL return keepGoing(job, context);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class NodeT> PRESERVE_NONE void iter(Job *, Context *);
|
template <class NodeT> PRESERVE_NONE void iter(Job *, Context *);
|
||||||
|
Reference in New Issue
Block a user