On Fri, May 21, 2021 at 7:49 AM Manlio Perillo <manlio.peri...@gmail.com> wrote: > > In a program I want to read a password from the terminal, using > golang.org/x/term. > The problem is that there is a possibility that a signal is sent to the > program, resulting in the terminal state not being restored: > https://play.golang.org/p/4IjLve9gDx0 > > In case of term.ReadPassword, on Linux I noted that ECHO is restored, but > let's ignore it. > > What I tried to do was to ttemporarily block the signals, using signal.Ignore > and signal.Reset; the problem is that Reset doesn't reset ignored signals. > > Looking at the runtime code, Go only use SIG_DFL in special cases. > Is there a reason why Reset don't reset ignore signals? Portability? > > Is there a simple, portable way, to do what I want?
I thought that signal.Reset would reset a signal ignored by signal.Ignore. What happens when you try it? In any case I don't see why your program wants to ignore signals. It seems better to catch the signal, restore the terminal, and exit. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcWqjwb5q7a8cie1PNvGUmvEPoTh0d0-qpbOpTq9k4GN6A%40mail.gmail.com.