xfce4-panel and SIGTERM

Jasper Huijsmans jasper at xfce.org
Sun Mar 19 10:05:58 CET 2006


Brian J. Tarricone schreef:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Jasper Huijsmans wrote:
>> Adriano Winter Bess schreef:
> 
>> What does it say above this? SIGSEGV in ...
>>
>>> #0  panel_app_get_monitor (n=0) at panel-app.c:815
>>> No locals.
>>> #1  0x080530f4 in panel_resize_function (window=0x80db7b0, panel=0x80db7b0, old=0xbfdbed7c, new=0xbfdbed6c, x=0x80db870, 
>>>     y=0x80db874) at panel-properties.c:379
>>>         priv = (PanelPrivate *) 0x80db890
>>>         xmon = <value optimized out>
>>
>> Hmm, maybe the resize function is being called while the panel is being 
>> destroyed... I can try to disconnect these handlers, before destroying 
>> any widgets.
> 
> Note that calling *anything* but a few "safe" libc functions while
> inside a posix signal handler has undefined results.  The glib main loop
> may be thread-safe, but it's not really reentrant.  Gtk and gdk are not
> even thread-safe.  When a posix signal handler runs, you have no idea
> what the state of the rest of the app is in.  It could be in the middle
> of some glib function for all you know.  If you start calling
> gtk/gdk/glib functions in a signal handler, you can actually make
> matters worse.
> 

I know. I only set a variable and check it with a timeout function.

> (Granted, I know I do this in xfmedia, and bad things only seem to
> happen a tiny percentage of the time.  Regardless, it's technically
> incorrect.)
> 
> There's a very recent thread on gtk-app-devel-list about this stuff, and
> some possible solutions.  I don't have a link handy, though.
> 

Yeah, they suggest using a pipe and a giochannel to watch writes to it. 
I might try and change it to that.

I don't think it can explain current problem though.

	Jasper



More information about the Xfce4-dev mailing list