X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=vss.c;h=10780cbffe1a9026e1729423c0e98bfe1dddeabd;hp=7b36ae31c95a14ca24d87d7f3f9c27d29de6fa5c;hb=96c5cc23d6d1e8ecfb6eacee7eaf19efe51e89bc;hpb=89e28a4361bd120dfe4202a16d85d03fb1139de8 diff --git a/vss.c b/vss.c index 7b36ae31..10780cbf 100644 --- a/vss.c +++ b/vss.c @@ -641,10 +641,7 @@ static int need_to_request_new_audio_file(struct vss_task *vsst) } /** - * Compute the timeout for para_server's main select-loop. - * - * This function gets called from para_server to determine the timeout value - * for its main select loop. + * Compute the timeout for the main select-loop of the scheduler. * * \param s Pointer to the server scheduler. * \param t Pointer to the vss task structure. @@ -743,7 +740,6 @@ static void recv_afs_result(struct vss_task *vsst) struct stat statbuf; vsst->afsss = AFS_SOCKET_READY; - mmd->afd.afhi.chunk_table = NULL; ret = recv_afs_msg(vsst->afs_socket, &passed_fd, &afs_code, &afs_data); if (ret < 0) goto err; @@ -755,6 +751,7 @@ static void recv_afs_result(struct vss_task *vsst) if (passed_fd < 0) goto err; shmid = afs_data; + free(mmd->afd.afhi.info_string); ret = load_afd(shmid, &mmd->afd); if (ret < 0) goto err; @@ -880,7 +877,10 @@ static void vss_post_select(struct sched *s, struct task *t) } else if (FD_ISSET(vsst->afs_socket, &s->wfds)) { PARA_NOTICE_LOG("requesting new fd from afs\n"); ret = send_buffer(vsst->afs_socket, "new"); - vsst->afsss = AFS_SOCKET_AFD_PENDING; + if (ret < 0) + PARA_CRIT_LOG("%s\n", para_strerror(-ret)); + else + vsst->afsss = AFS_SOCKET_AFD_PENDING; } for (i = 0; senders[i].name; i++) { if (!senders[i].post_select)