ref: 0315b03f27599c842b0371d0007ac49308b090c7
parent: d91236726f3b2fdd62b78c0bfa6e7c92a48de5e3
author: Benjamin Scher Purcell <ben@spew.club>
date: Wed Jan 13 15:23:30 EST 2016
remove extraneous proc, fix fd leak
--- a/aplay.c
+++ b/aplay.c
@@ -39,6 +39,7 @@
void outproc(void*);
void timerproc(void*);
void codecproc(void*);
+void waitforaudio(void);
void usage(void);
void shutdown(char*);
void startstop(Codecargs*);
@@ -189,6 +190,7 @@
threadkill(inpid);
codecpid = inpid = 0;
}else{
+ waitforaudio();
assert(codecpid == 0 && inpid == 0);
if(pipe(codecargs->infd) < 0)
threadsfatal();
@@ -307,6 +309,21 @@
flushimage(display, 1);
}
+void
+waitforaudio(void)
+{
+ Dir *d;
+
+ for(;;){
+ d = dirstat(devaudio);
+ if(d->length == 0)
+ break;
+ free(d);
+ sleep(100);
+ }
+ free(d);
+}
+
void
usage(void)
{