[Gambas-devel] GB.Signal.Register() keeps program running?

Tobias Boege tobias at ...692...
Wed Feb 5 12:58:00 CET 2014


On Tue, 04 Feb 2014, Beno?t Minisini wrote:
> Le 04/02/2014 18:04, Tobias Boege a ?crit :
> > Hi Benoit,
> >
> > I wondered why all gb.ncurses programs (even if they don't watch any input
> > fds) won't quit after they finished Main(). The reason is that gb.ncurses
> > registers a signal handler via GB.Signal.Register() (because removing that
> > line from the sources makes those programs terminate after Main()).
> >
> > Is this intentional? Can't we register a signal handler and anyway quit
> > normally after Main() if the signal didn't came?
> >
> > Regards,
> > Tobi
> >
> 
> Yes, you must use GB.Signal.Unregister() to remove the signal handler.
> 

Hmm, but when? How about this: I always register the signal handler and use
GB_HOOK_WATCH to detect when nothing is watched anymore. Then, I can remove
the signal handler and the program will terminate.

The only case where this doesn't work, is when nothing is watched at all
during the process' lifetime...

Regards,
Tobi

-- 
"There's an old saying: Don't change anything... ever!" -- Mr. Monk





More information about the Devel mailing list