* this period begins to avoid restarting the receiver that
* belongs to the file just completed.
*/
- if (stat_task->server_stream_start.tv_sec != 0)
+ if (stat_task->server_stream_start.tv_sec != 0) {
sched_request_timeout_ms(100, s);
+ return -1;
+ }
}
if (tv_diff(now, &afi[cafn].restart_barrier, &diff) < 0) {
if (tv_diff(&s->timeout, &diff, NULL) > 0)
- s->timeout = diff;
+ sched_request_timeout(&diff, s);
else
sched_min_delay(s);
return -1;
for (i = 0; i < a->num_filters; i++)
if (s->fns && s->fns[i].task.error != -E_TASK_UNREGISTERED)
return false;
- for (i = 0; i < a->num_writers; i++)
- if (s->wns && s->wns[i].task.error != -E_TASK_UNREGISTERED)
+ if (a->num_writers > 0) {
+ for (i = 0; i < a->num_writers; i++)
+ if (s->wns && s->wns[i].task.error != -E_TASK_UNREGISTERED)
+ return false;
+ } else {
+ if (s->wns && s->wns[0].task.error != -E_TASK_UNREGISTERED)
return false;
+ }
PARA_INFO_LOG("closing slot %d\n", slot_num);
close_writers(s);
_close_filters(s);