From: Andre Noll Date: Mon, 30 Dec 2013 23:30:03 +0000 (+0000) Subject: task_register() conversion: vss task X-Git-Tag: v0.5.3~8^2~19 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=db74b8bd5f82f4a72cdf5ad6c85dd723e4a386ab;p=paraslash.git task_register() conversion: vss task --- diff --git a/vss.c b/vss.c index 3ace49e9..1b66a6e5 100644 --- a/vss.c +++ b/vss.c @@ -89,7 +89,7 @@ struct vss_task { /** The memory mapped audio file. */ char *map; /** Used by the scheduler. */ - struct task task; + struct task *task; /** Pointer to the header of the mapped audio file. */ char *header_buf; /** Length of the audio file header. */ @@ -902,7 +902,7 @@ static void set_mmd_offset(void) static void vss_pre_select(struct sched *s, struct task *t) { int i; - struct vss_task *vsst = container_of(t, struct vss_task, task); + struct vss_task *vsst = task_context(t); if (!vsst->map || vss_next() || vss_paused() || vss_repos()) { struct fec_client *fc, *tmp; @@ -1129,7 +1129,7 @@ static void vss_send(struct vss_task *vsst) static int vss_post_select(struct sched *s, struct task *t) { int ret, i; - struct vss_task *vsst = container_of(t, struct vss_task, task); + struct vss_task *vsst = task_context(t); if (mmd->sender_cmd_data.cmd_num >= 0) { int num = mmd->sender_cmd_data.cmd_num, @@ -1185,8 +1185,6 @@ void init_vss_task(int afs_socket, struct sched *s) conf.autoplay_delay_arg : 0; vsst->header_interval.tv_sec = 5; /* should this be configurable? */ vsst->afs_socket = afs_socket; - vsst->task.pre_select = vss_pre_select; - vsst->task.post_select = vss_post_select; ms2tv(announce_time, &vsst->announce_tv); PARA_INFO_LOG("announce timeval: %lums\n", tv2ms(&vsst->announce_tv)); INIT_LIST_HEAD(&fec_client_list); @@ -1206,6 +1204,10 @@ void init_vss_task(int afs_socket, struct sched *s) tv_add(&vsst->autoplay_barrier, &vsst->announce_tv, &vsst->data_send_barrier); } - sprintf(vsst->task.status, "vss task"); - register_task(s, &vsst->task); + vsst->task = task_register(&(struct task_info) { + .name = "vss task", + .pre_select = vss_pre_select, + .post_select = vss_post_select, + .context = vsst, + }, s); }