}
*g->loaded -= min_written;
if (!*g->loaded && *g->eof)
- t->ret = 0;
+ t->ret = -E_WNG_EOF;
else
t->ret = 1;
if (*g->loaded && min_written)
wn->task.pre_select = wn->writer->pre_select;
wn->task.post_select = wn->writer->post_select;
wn->task.private_data = wn;
- wn->task.flags = POST_EOF_IS_ERROR;
register_task(&wn->task);
}
register_task(&g->task);
}
}
-static void wng_error_handler(struct task *t)
+static void wng_event_handler(struct task *t)
{
struct writer_node_group *g = t->private_data;
- PARA_INFO_LOG("%p: ret = %d\n", t, t->ret);
+ PARA_INFO_LOG("%s\n", PARA_STRERROR(-t->ret));
unregister_task(t);
wng_close(g);
wng_destroy(g);
g->written = para_calloc(num_writers * sizeof(size_t));
g->task.private_data = g;
g->task.post_select = wng_post_select;
- g->task.error_handler = wng_error_handler;
- g->task.flags = POST_ADD_TAIL | POST_EOF_IS_ERROR;
+ g->task.event_handler = wng_event_handler;
+ g->task.flags = POST_ADD_TAIL;
return g;
}
else
default_writer = 1;
wng->writer_nodes[0].writer = &writers[default_writer];
+ sprintf(wng->writer_nodes[0].task.status, "%s",
+ writer_names[default_writer]);
PARA_INFO_LOG("using default writer: %s\n",
writer_names[default_writer]);
return wng;