static void client_pre_select(struct sched *s, struct task *t)
{
int ret;
- struct client_task *ct = container_of(t, struct client_task, task);
+ struct client_task *ct = task_context(t);
if (ct->scc.fd < 0)
return;
*/
static int client_post_select(struct sched *s, struct task *t)
{
- struct client_task *ct = container_of(t, struct client_task, task);
+ struct client_task *ct = task_context(t);
int ret = 0;
size_t n;
char buf[CLIENT_BUFSIZE];
EMBRACE(.name = "client recv", .parent = NULL, .child = child));
ct->btrn[1] = btr_new_node(&(struct btr_node_description)
EMBRACE(.name = "client send", .parent = parent, .child = NULL));
- ct->task.pre_select = client_pre_select;
- ct->task.post_select = client_post_select;
- ct->task.error = 0;
- sprintf(ct->task.status, "client");
- register_task(s, &ct->task);
+
+ ct->task = task_register(&(struct task_info) {
+ .name = "client",
+ .pre_select = client_pre_select,
+ .post_select = client_post_select,
+ .context = ct,
+ }, s);
return 1;
err_out:
close(ct->scc.fd);