Skip to contentSkip to conversation

gnutv: exit on EPIPE/SIGPIPE

PATCH New Brian J. Murrell 1 participant 1 message May 7, 2012 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gnutv: exit on EPIPE/SIGPIPE

When using gnutv with "-out stdout" it doesn't exit when it's reader quits (i.e. and it gets an EPIPE/SIGPIPE).

---

util/gnutv/gnutv_data.c +4 -1
@@ -265,7 +265,10 @@
 		while(written < size) {
 			int tmp = write(outfd, buf + written, size - written);
 			if (tmp == -1) {
-				if (errno != EINTR) {
+				if (errno == EPIPE) {
+					fprintf(stderr, "processing EPIPE\n");
+					return 0;
+				} else if (errno != EINTR) {
 					fprintf(stderr, "Write error: %m\n");
 					break;
 				}
util/gnutv/gnutv.c.new renamed from util/gnutv/gnutv.c +1 -1
@@ -262,7 +262,7 @@
 
 	// setup any signals
 	signal(SIGINT, signal_handler);
-	signal(SIGPIPE, SIG_IGN);
+	signal(SIGPIPE, signal_handler);
 
 	// start the CA stuff
 	gnutv_ca_params.adapter_id = adapter_id;