X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=vss.c;h=f225aa74568fb057058cea5d3590aae0ffeffaf1;hp=30285aeff5441e540f66dc92afc8b0717a60d9b5;hb=7bcce4a433d575b15bfb70b7274562d65dd4bd66;hpb=d54fa6e3d72bb509ed098dc65f4ad26f5aae7aab diff --git a/vss.c b/vss.c index 30285aef..f225aa74 100644 --- a/vss.c +++ b/vss.c @@ -1078,25 +1078,6 @@ static void vss_send(struct vss_task *vsst) senders[i].send(mmd->current_chunk, mmd->chunks_sent, buf, len, vsst->header_buf, vsst->header_len); } - /* - * Prefault next chunk(s) - * - * If the backing device of the memory-mapped audio file is - * slow and read-ahead is turned off or prevented for some - * reason, e.g. due to memory pressure, it may take much longer - * than the chunk interval to get the next chunk on the wire, - * causing buffer underruns on the client side. Mapping the - * file with MAP_POPULATE seems to help a bit, but it does not - * eliminate the delays completely. Moreover, it is supported - * only on Linux. So we do our own read-ahead here. - */ - if (mmd->current_chunk > 0) { /* chunk 0 might be on the heap */ - buf += len; - for (i = 0; i < 5 && buf < vsst->map + vsst->mapsize; i++) { - __a_unused volatile char x = *buf; - buf += 4096; - } - } mmd->chunks_sent++; mmd->current_chunk++; } @@ -1177,11 +1158,10 @@ static int vss_post_select(struct sched *s, void *context) * This also initializes all supported senders and starts streaming * if the --autoplay command line flag was given. */ -void init_vss_task(int afs_socket, struct sched *s) +void vss_init(int afs_socket, struct sched *s) { static struct vss_task vss_task_struct, *vsst = &vss_task_struct; int i; - char *hn = para_hostname(), *home = para_homedir(); long unsigned announce_time = OPT_UINT32_VAL(ANNOUNCE_TIME), autoplay_delay = OPT_UINT32_VAL(AUTOPLAY_DELAY); vsst->header_interval.tv_sec = 5; /* should this be configurable? */ @@ -1193,8 +1173,6 @@ void init_vss_task(int afs_socket, struct sched *s) PARA_NOTICE_LOG("initializing %s sender\n", senders[i].name); senders[i].init(&senders[i]); } - free(hn); - free(home); mmd->sender_cmd_data.cmd_num = -1; if (OPT_GIVEN(AUTOPLAY)) { struct timeval tmp;