Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
Re: changes to signal handling with respect to ksh ?
To:
"Todd C. Miller" <Todd.Miller@sudo.ws>
Cc:
Claudio Jeker <cjeker@diehard.n-r-g.com>, Walter Alejandro Iglesias <wai@roquesor.com>, Marc Espie <marc.espie.openbsd@gmail.com>, ports@openbsd.org
Date:
Fri, 9 Aug 2024 17:43:28 +0200

Download raw body.

Thread
> The correct fix is probably to drain the pipe and only act on the
> last command.  It seems to work for me.

Makes sense and works here, too. Here's a corresponding diff for the
port. This is

ok tb

(or I can commit if you want me to).


Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/mpv/Makefile,v
diff -u -p -r1.103 Makefile
--- Makefile	28 Jul 2024 06:51:13 -0000	1.103
+++ Makefile	9 Aug 2024 15:42:23 -0000
@@ -4,7 +4,7 @@ GH_ACCOUNT =		mpv-player
 GH_PROJECT =		mpv
 GH_TAGNAME =		v0.38.0
 USE_NOBTCFI =		Yes
-REVISION =		0
+REVISION =		1
 
 SHARED_LIBS +=		mpv		2.0
 
Index: patches/patch-osdep_terminal-unix_c
===================================================================
RCS file: patches/patch-osdep_terminal-unix_c
diff -N patches/patch-osdep_terminal-unix_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-osdep_terminal-unix_c	9 Aug 2024 15:39:47 -0000
@@ -0,0 +1,13 @@
+Index: osdep/terminal-unix.c
+--- osdep/terminal-unix.c.orig
++++ osdep/terminal-unix.c
+@@ -421,7 +421,8 @@ static MP_THREAD_VOID terminal_thread(void *ptr)
+         }
+         if (fds[1].revents & POLLIN) {
+             int8_t c = -1;
+-            (void)read(stop_cont_pipe[0], &c, 1);
++            while (read(stop_cont_pipe[0], &c, 1) == 1)
++                continue;
+             if (c == PIPE_STOP) {
+                 do_deactivate_getch2();
+                 if (isatty(STDERR_FILENO)) {