Skip Menu |

This queue is for tickets about the IO-Async CPAN distribution.

Report information
The Basics
Id: 120903
Status: new
Priority: 0/
Queue: IO-Async

People
Owner: Nobody in particular
Requestors: leonerd-cpan [...] leonerd.org.uk
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: termkey-level of teardown not performed after SIGINT exit
Hitting Ctrl-C to shut down a Tickit::Async program correctly stops the tickit-driver level of teardown (disabling altscreen, mouse, etc...) but does not do the termkey-level (termios ECHO, O_NONBLOCK). I suspect this is due to a refcount bug somewhere still holding the termkey instance open, or something like that. This should likely be rewritten to have an explicit ->shutdown method, rather than relying on refcount. -- Paul Evans
On Mon Apr 03 09:08:17 2017, PEVANS wrote: Show quoted text
> Hitting Ctrl-C to shut down a Tickit::Async program correctly stops > the tickit-driver level of teardown (disabling altscreen, mouse, > etc...) but does not do the termkey-level (termios ECHO, O_NONBLOCK). > > I suspect this is due to a refcount bug somewhere still holding the > termkey instance open, or something like that. > > This should likely be rewritten to have an explicit ->shutdown method, > rather than relying on refcount.
Actually, the termkey instance *is* destroyed here. The actual bug is that IO::Async is setting the O_NONBLOCK flag and nothing exists to remove it again. This is an IO::Async issue; I shall move it. -- Paul Evans