shithub: aplay

Download patch

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)
 {