static int err(const char *msg, int snd_err, struct route_stream *s,
int return_code)
{
+ if(terminating) {
+ return ERR_TERMINATING;
+ }
+
fprintf(logfile, "%s (%s): %s", s->id, s->pcm_name, msg);
if (snd_err < 0) {
fprintf(logfile, ": %s", snd_strerror(snd_err));
return 0;
}
snd_pcm_close(s->handle);
+ s->handle = 0;
if (s->period_buffer == 0) {
return 0;
}
free(s->period_buffer);
+ s->period_buffer = 0;
return 0;
}
return 0;
}
- if (terminating) {
- return ERR_TERMINATING;
- }
-
/* EPIPE means overrun */
if (rc == -EPIPE) {
err("overrun occured", rc, s, ERR_READ_OVERRUN);
return 0;
}
- if (terminating) {
- return ERR_TERMINATING;
- }
-
/* EPIPE means underrun */
if (rc == -EPIPE) {
err("underrun occured", rc, s, ERR_WRITE_UNDERRUN);