【发布时间】:2016-11-08 19:55:00
【问题描述】:
关于程序崩溃有很多类似的问题,但我没有看到任何与我所问的完全一样的问题......
当我使用 xkill 杀死我的应用程序时,我在 stderr 上收到以下消息:
(foo.pl:32471): Gdk-WARNING **: foo.pl: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
我想做的(如果可能的话)是在退出之前捕获该事件并进行一些清理(保存首选项等)。
设置:
- Linux
- Perl 5.16
- Gtk3 3.8.8
编辑:
示例源代码:
#!/usr/bin/perl -w
use Gtk3 -init;
my $win = Gtk3::Window->new;
$win->signal_connect('delete-event' => sub { cleanup('delete-event') } );
$win->signal_connect('destroy' => sub { cleanup('destroy') } );
$win->signal_connect('destroy-event' => sub { cleanup('destroy-event') } );
$win->signal_connect('unmap-event' => sub { cleanup('unmap-event') } );
$win->signal_connect('unmap' => sub { cleanup('unmap') } );
$win->show_all;
Gtk3->main;
sub cleanup {
my $event = shift;
print "Doing cleanup due to signal '$event'\n";
}
在此应用上使用xkill 时,不会执行打印语句。
【问题讨论】: