On 07/12/2012 11:12 PM, Ben Chan wrote: > expire_signal_quality() / mm_iface_modem_update_access_technologies() > may be called after the DBus object skeleton is removed in > mm_iface_modem_shutdown() and before their associated timeout source is > removed (in *_context_free) due to destruction of the modem object. > > This patch fixes the issue by removing context objects before removing > the DBus skeleton in mm_iface_modem_shutdown(). > --- > src/mm-iface-modem.c | 25 +++++++++++++++++++++++++ > 1 files changed, 25 insertions(+), 0 deletions(-) > > diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c > index 49a18a5..3373b5b 100644 > --- a/src/mm-iface-modem.c > +++ b/src/mm-iface-modem.c > @@ -3676,6 +3676,31 @@ mm_iface_modem_shutdown (MMIfaceModem *self) > { > g_return_if_fail (MM_IS_IFACE_MODEM (self)); > > + /* Remove SignalQualityCheckContext object to make sure any pending > + * invocation of periodic_signal_quality_check is cancelled before > + * SignalQualityUpdateContext is removed (as signal_quality_check_ready > may > + * call update_signal_quality). */ > + if (G_LIKELY (signal_quality_check_context_quark)) > + g_object_set_qdata (G_OBJECT (self), > + signal_quality_check_context_quark, > + NULL); > + > + /* Remove SignalQualityUpdateContext object to make sure any pending > + * invocation of expire_signal_quality is canceled before the DBus > skeleton > + * is removed. */ > + if (G_LIKELY (signal_quality_update_context_quark)) > + g_object_set_qdata (G_OBJECT (self), > + signal_quality_update_context_quark, > + NULL); > + > + /* Remove AccessTechnologiesCheckContext object to make sure any pending > + * invocation of periodic_access_technologies_check is canceled before > the > + * DBus skeleton is removed. */ > + if (G_LIKELY (access_technologies_check_context_quark)) > + g_object_set_qdata (G_OBJECT (self), > + access_technologies_check_context_quark, > + NULL); > + > /* Remove SIM object */ > g_object_set (self, > MM_IFACE_MODEM_SIM, NULL, >
Pushed now, along with a similar fix for the registration check contexts in the 3GPP and CDMA interfaces. Thanks! -- Aleksander _______________________________________________ networkmanager-list mailing list networkmanager-list@gnome.org https://mail.gnome.org/mailman/listinfo/networkmanager-list