Chris Vine wrote:
> On Wednesday 21 March 2007 17:50, Michiel Jan Laurens de Hoon wrote:
> 
>>For my application, I need to run gtk_main but I want to quit gtk_main
>>when either input is available on stdin or the user presses Ctrl-C. 
[snip]
> 
> You can write to a pipe in the signal handler (assuming you are using Unix as 
> your question implies), as write() is async-signal-safe - but set the pipe 
> non-blocking as in the unlikely event of it filling up and blocking on write 
> you will deadlock the program.  You can watch on the pipe in the main loop 
> using GIOChannel.

For this approach I wrote some code to simplify this:
http://www.knitter.ch/src/gunixsignal/

But the other approach with the flag is not bad too. The only advantage
of the pipe compared with the flag is that the pipe won't miss a Signal
while the flag may miss a signal. (if you send two signal within your
100ms interval you don't know if there was more than one).

Cheers, Andy

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to