Re: Race condition during Dispatcher deconstruction



On Tue, 2008-01-08 at 01:07 +0000, Chris Vine wrote:
> On Mon, 2008-01-07 at 08:43 -0600, Matt Hoosier wrote:
[snip]
> > I know that the DispatcherNotifier object attempts to avoid this by doing
> > 
> >   conn_io_handler_.disconnect()
> > 
> > in its own destructor, but the crash inside pipe_io_handler() after
> > I'm certain that the destructor for the Dispatcher has run, makes me
> > wonder if this isn't really disconnecting the GIOChannel underneath.
> 
> I cannot find conn_io_handler.disconnect() in the version of glibmm I
> have installed (2.14.1).
[snip]
Ah, it is in glibmm-2.6 that I have a tarball of here.  That method is
invoked in the destructor of Glib::DispatchNotifier, because in that
version of glibmm, Glib:DispatchNotifier is not derived from
sigc::trackable.  However that is not going to save you (any more than
sigc::trackable will) because as I have mentioned the
Glib::DispatchNotifier object appears to be a thread-local static
object, shared between all Glib::Dispatcher objects created in that
thread.

I am now definitely off to bed.

Chris




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]