Also, fix the pointer being printed in a debug message of the scheduler.
{
struct task *t, *tmp;
list_for_each_entry_safe(t, tmp, &pre_select_list, pre_select_node) {
- if (t->error >= 0)
+ if (t->error >= 0 && t->pre_select)
t->pre_select(s, t);
// PARA_INFO_LOG("%s \n", t->status);
if (t->error >= 0)
list_add_tail(&t->pre_select_node, &pre_select_list);
}
if (t->post_select) {
- PARA_DEBUG_LOG("post_select: %p\n", &t->pre_select);
+ PARA_DEBUG_LOG("post_select: %p\n", &t->post_select);
list_add_tail(&t->post_select_node, &post_select_list);
}
}
FOR_EACH_WRITER_NODE(i, g) {
struct writer_node *wn = &g->writer_nodes[i];
+ if (!wn->writer->pre_select)
+ continue;
t->error = wn->writer->pre_select(s, wn);
if (t->error < 0)
return;