4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-24 01:29:34 +08:00
Takashi Yano 04f386e9af Cygwin: console: Inherit pcon hand over from parent pty
There was a long-standing issue that pseudo console ownership could
not hand over from the process whose ctty is /dev/cons* rather than
/dev/pty*. This problem happens when a cygwin app starts non-cygwin
app in a pty, then the non-cygwin app starts multiple cygwin apps,
and the non-cygwin app ends before the second cygwin apps end.
In this case, the stub process of the non-cygwin app hands over the
ownership of pcon to one of the second cygwin apps, however, this
app does not hand over the ownership of pcon to another second
cygwin app. This is due to the fact that the hand-over feature is
implemented only in fhandler_pty_slave but not in fhandler_console.

With this patch, the second cygwin apps check if their console device
is inside a pseudo console, and if so, it tries to hand over the
ownership of the pseudo console to anther process that is attached
to the same pseudo console.

Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255388.html
Fixes: 253352e796ff ("Cygwin: pty: Allow multiple apps to enable pseudo console simultaneously.")
Reported-by: lmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>, Hossein Nourikhah <hossein@libreoffice.org>
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2024-10-31 15:34:56 +09:00

27 lines
1.0 KiB
Groff

Fixes:
------
- Fix undesired behaviour of console master thread in win32-input-mode
which is supported by Windows Termainal.
Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256380.html
- Fix a regression in 3.5.4 that writing to pipe extremely slows down.
Addresses: https://cygwin.com/pipermail/cygwin/2024-August/256398.html
- Fix pread() and pwrite() EBADF error after fork().
Addresses: https://sourceware.org/pipermail/cygwin/2024-September/256468.html
- Fix timer_delete() return value which always indicated failure.
- Fix lockf() error which occurs when adding a new lock over multiple
locks.
Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256528.html
- Make lockf() return ENOLCK when the number of locks exceeds
MAX_LOCKF_CNT rather than printing a warning message.
Addresses: https://cygwin.com/pipermail/cygwin/2024-October/256528.html
- Make console inherit hand over of pseudo console ownership from
parent pty.
Addresses: https://cygwin.com/pipermail/cygwin/2024-February/255388.html