*fix* ignore SIGCHLD in way that BSD and linux support
*fix* default background id 0 for panel if not specified in the config file git-svn-id: http://tint2.googlecode.com/svn/trunk@517 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
parent
c13397aff6
commit
a3f33be8ae
2 changed files with 4 additions and 1 deletions
|
@ -156,6 +156,8 @@ void init_panel()
|
|||
|
||||
if (panel_config.monitor < 0)
|
||||
p->monitor = i;
|
||||
if ( p->area.bg == 0 )
|
||||
p->area.bg = &g_array_index(backgrounds, Background, 0);
|
||||
p->area.parent = p;
|
||||
p->area.panel = p;
|
||||
p->area.on_screen = 1;
|
||||
|
|
|
@ -91,11 +91,12 @@ void init (int argc, char *argv[])
|
|||
// Set signal handler
|
||||
signal_pending = 0;
|
||||
struct sigaction sa = { .sa_handler = signal_handler };
|
||||
struct sigaction sa_chld = { .sa_handler = SIG_DFL, .sa_flags = SA_NOCLDWAIT };
|
||||
sigaction(SIGUSR1, &sa, 0);
|
||||
sigaction(SIGINT, &sa, 0);
|
||||
sigaction(SIGTERM, &sa, 0);
|
||||
sigaction(SIGHUP, &sa, 0);
|
||||
// signal(SIGCHLD, SIG_IGN); // don't have to wait() after fork()
|
||||
sigaction(SIGCHLD, &sa_chld, 0);
|
||||
|
||||
// BSD does not support pselect(), therefore we have to use select and hope that we do not
|
||||
// end up in a race condition there (see 'man select()' on a linux machine for more information)
|
||||
|
|
Loading…
Reference in a new issue