• Allison Karlitskaya's avatar
    GContextSpecificGroup: detach sources · 62f320e6
    Allison Karlitskaya authored
    GContextSpecificGroup has been somewhat broken for a rather long time:
    when we remove the last reference on an object held in the group, we try
    to clean up the source, but fail to actually remove it from the
    mainloop.
    
    We will soon stop emitting signals on the source (due to it having been
    removed from the hash table) but any "in flight" signals will still be
    delivered on the source, which continues to exist.  This is a problem if
    the event is being delivered just as the object is being destroyed.
    
    This also means that we leave the source attached to the mainloop
    forever (and next time will create a new one)...
    
    This is demonstrated with the GtkAppChooser dialog which writes an
    update to the mimeapps.list file just as it is closing, triggering the
    app info monitor to fire just as it is being destroyed.
    
    Karl Tomlinson correctly analysed the problem and proposed this fix.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=762994
    62f320e6
Name
Last commit
Last update
..
completion Loading commit data...
fam Loading commit data...
gdbus-2.0/codegen Loading commit data...
gvdb Loading commit data...
inotify Loading commit data...
kqueue Loading commit data...
tests Loading commit data...
win32 Loading commit data...
xdgmime Loading commit data...
.gitignore Loading commit data...
ChangeLog Loading commit data...
Makefile.am Loading commit data...
data-to-c.pl Loading commit data...
dbus-daemon.xml Loading commit data...
gaction.c Loading commit data...
gaction.h Loading commit data...
gactiongroup.c Loading commit data...
gactiongroup.h Loading commit data...
gactiongroupexporter.c Loading commit data...
gactiongroupexporter.h Loading commit data...
gactionmap.c Loading commit data...
gactionmap.h Loading commit data...
gappinfo.c Loading commit data...
gappinfo.h Loading commit data...
gappinfoprivate.h Loading commit data...
gapplication-tool.c Loading commit data...
gapplication.c Loading commit data...
gapplication.h Loading commit data...
gapplicationcommandline.c Loading commit data...
gapplicationcommandline.h Loading commit data...
gapplicationimpl-dbus.c Loading commit data...
gapplicationimpl.h Loading commit data...
gasynchelper.c Loading commit data...
gasynchelper.h Loading commit data...
gasyncinitable.c Loading commit data...
gasyncinitable.h Loading commit data...
gasyncresult.c Loading commit data...
gasyncresult.h Loading commit data...
gbufferedinputstream.c Loading commit data...
gbufferedinputstream.h Loading commit data...
gbufferedoutputstream.c Loading commit data...
gbufferedoutputstream.h Loading commit data...
gbytesicon.c Loading commit data...
gbytesicon.h Loading commit data...
gcancellable.c Loading commit data...
gcancellable.h Loading commit data...
gcharsetconverter.c Loading commit data...
gcharsetconverter.h Loading commit data...
gcocoanotificationbackend.c Loading commit data...
gcontenttype-win32.c Loading commit data...
gcontenttype.c Loading commit data...
gcontenttype.h Loading commit data...
gcontenttypeprivate.h Loading commit data...
gcontextspecificgroup.c Loading commit data...
gcontextspecificgroup.h Loading commit data...
gconverter.c Loading commit data...
gconverter.h Loading commit data...
gconverterinputstream.c Loading commit data...
gconverterinputstream.h Loading commit data...
gconverteroutputstream.c Loading commit data...
gconverteroutputstream.h Loading commit data...
gcredentials.c Loading commit data...
gcredentials.h Loading commit data...
gcredentialsprivate.h Loading commit data...
gdatagrambased.c Loading commit data...
gdatagrambased.h Loading commit data...
gdatainputstream.c Loading commit data...
gdatainputstream.h Loading commit data...
gdataoutputstream.c Loading commit data...
gdataoutputstream.h Loading commit data...
gdbus-tool.c Loading commit data...
gdbusactiongroup-private.h Loading commit data...
gdbusactiongroup.c Loading commit data...
gdbusactiongroup.h Loading commit data...
gdbusaddress.c Loading commit data...
gdbusaddress.h Loading commit data...
gdbusauth.c Loading commit data...
gdbusauth.h Loading commit data...
gdbusauthmechanism.c Loading commit data...
gdbusauthmechanism.h Loading commit data...
gdbusauthmechanismanon.c Loading commit data...
gdbusauthmechanismanon.h Loading commit data...
gdbusauthmechanismexternal.c Loading commit data...
gdbusauthmechanismexternal.h Loading commit data...
gdbusauthmechanismsha1.c Loading commit data...
gdbusauthmechanismsha1.h Loading commit data...
gdbusauthobserver.c Loading commit data...
gdbusauthobserver.h Loading commit data...
gdbusconnection.c Loading commit data...
gdbusconnection.h Loading commit data...
gdbusdaemon.c Loading commit data...
gdbusdaemon.h Loading commit data...
gdbuserror.c Loading commit data...
gdbuserror.h Loading commit data...
gdbusinterface.c Loading commit data...
gdbusinterface.h Loading commit data...
gdbusinterfaceskeleton.c Loading commit data...
gdbusinterfaceskeleton.h Loading commit data...
gdbusintrospection.c Loading commit data...
gdbusintrospection.h Loading commit data...
gdbusmenumodel.c Loading commit data...
gdbusmenumodel.h Loading commit data...
gdbusmessage.c Loading commit data...
gdbusmessage.h Loading commit data...
gdbusmethodinvocation.c Loading commit data...
gdbusmethodinvocation.h Loading commit data...
gdbusnameowning.c Loading commit data...
gdbusnameowning.h Loading commit data...
gdbusnamewatching.c Loading commit data...
gdbusnamewatching.h Loading commit data...
gdbusobject.c Loading commit data...
gdbusobject.h Loading commit data...
gdbusobjectmanager.c Loading commit data...
gdbusobjectmanager.h Loading commit data...
gdbusobjectmanagerclient.c Loading commit data...
gdbusobjectmanagerclient.h Loading commit data...
gdbusobjectmanagerserver.c Loading commit data...
gdbusobjectmanagerserver.h Loading commit data...
gdbusobjectproxy.c Loading commit data...
gdbusobjectproxy.h Loading commit data...
gdbusobjectskeleton.c Loading commit data...
gdbusobjectskeleton.h Loading commit data...
gdbusprivate.c Loading commit data...
gdbusprivate.h Loading commit data...
gdbusproxy.c Loading commit data...
gdbusproxy.h Loading commit data...
gdbusserver.c Loading commit data...
gdbusserver.h Loading commit data...
gdbusutils.c Loading commit data...
gdbusutils.h Loading commit data...
gdelayedsettingsbackend.c Loading commit data...
gdelayedsettingsbackend.h Loading commit data...
gdesktopappinfo.c Loading commit data...
gdesktopappinfo.h Loading commit data...
gdrive.c Loading commit data...
gdrive.h Loading commit data...
gdtlsclientconnection.c Loading commit data...
gdtlsclientconnection.h Loading commit data...
gdtlsconnection.c Loading commit data...
gdtlsconnection.h Loading commit data...
gdtlsserverconnection.c Loading commit data...
gdtlsserverconnection.h Loading commit data...
gdummyfile.c Loading commit data...
gdummyfile.h Loading commit data...
gdummyproxyresolver.c Loading commit data...
gdummyproxyresolver.h Loading commit data...
gdummytlsbackend.c Loading commit data...
gdummytlsbackend.h Loading commit data...
gemblem.c Loading commit data...
gemblem.h Loading commit data...
gemblemedicon.c Loading commit data...
gemblemedicon.h Loading commit data...
gfdonotificationbackend.c Loading commit data...
gfile.c Loading commit data...
gfile.h Loading commit data...
gfileattribute-priv.h Loading commit data...
gfileattribute.c Loading commit data...
gfileattribute.h Loading commit data...
gfiledescriptorbased.c Loading commit data...
gfiledescriptorbased.h Loading commit data...
gfileenumerator.c Loading commit data...
gfileenumerator.h Loading commit data...
gfileicon.c Loading commit data...
gfileicon.h Loading commit data...
gfileinfo-priv.h Loading commit data...
gfileinfo.c Loading commit data...
gfileinfo.h Loading commit data...
gfileinputstream.c Loading commit data...
gfileinputstream.h Loading commit data...
gfileiostream.c Loading commit data...
gfileiostream.h Loading commit data...
gfilemonitor.c Loading commit data...
gfilemonitor.h Loading commit data...
gfilenamecompleter.c Loading commit data...
gfilenamecompleter.h Loading commit data...
gfileoutputstream.c Loading commit data...
gfileoutputstream.h Loading commit data...
gfilterinputstream.c Loading commit data...
gfilterinputstream.h Loading commit data...
gfilteroutputstream.c Loading commit data...
gfilteroutputstream.h Loading commit data...
ggtknotificationbackend.c Loading commit data...
ghttpproxy.c Loading commit data...
ghttpproxy.h Loading commit data...
gicon.c Loading commit data...
gicon.h Loading commit data...
ginetaddress.c Loading commit data...
ginetaddress.h Loading commit data...
ginetaddressmask.c Loading commit data...
ginetaddressmask.h Loading commit data...
ginetsocketaddress.c Loading commit data...
ginetsocketaddress.h Loading commit data...
ginitable.c Loading commit data...
ginitable.h Loading commit data...
ginputstream.c Loading commit data...
ginputstream.h Loading commit data...
gio-autocleanups.h Loading commit data...
gio-querymodules.c Loading commit data...
gio.h Loading commit data...
gio.rc.in Loading commit data...
gioenums.h Loading commit data...
gioenumtypes.c.template Loading commit data...
gioenumtypes.h.template Loading commit data...
gioerror.c Loading commit data...
gioerror.h Loading commit data...
giomodule-priv.h Loading commit data...
giomodule.c Loading commit data...
giomodule.h Loading commit data...
gioprivate.h Loading commit data...
gioscheduler.c Loading commit data...
gioscheduler.h Loading commit data...
giostream.c Loading commit data...
giostream.h Loading commit data...
giotypes.h Loading commit data...
giowin32-priv.h Loading commit data...
gkeyfilesettingsbackend.c Loading commit data...
glib-compile-resources.c Loading commit data...
glib-compile-schemas.c Loading commit data...
glistmodel.c Loading commit data...
glistmodel.h Loading commit data...
gliststore.c Loading commit data...
gliststore.h Loading commit data...
gloadableicon.c Loading commit data...
gloadableicon.h Loading commit data...
glocalfile.c Loading commit data...
glocalfile.h Loading commit data...
glocalfileenumerator.c Loading commit data...
glocalfileenumerator.h Loading commit data...
glocalfileinfo.c Loading commit data...
glocalfileinfo.h Loading commit data...
glocalfileinputstream.c Loading commit data...
glocalfileinputstream.h Loading commit data...
glocalfileiostream.c Loading commit data...
glocalfileiostream.h Loading commit data...
glocalfilemonitor.c Loading commit data...
glocalfilemonitor.h Loading commit data...
glocalfileoutputstream.c Loading commit data...
glocalfileoutputstream.h Loading commit data...
glocalvfs.c Loading commit data...
glocalvfs.h Loading commit data...
gmemoryinputstream.c Loading commit data...
gmemoryinputstream.h Loading commit data...
gmemoryoutputstream.c Loading commit data...
gmemoryoutputstream.h Loading commit data...
gmemorysettingsbackend.c Loading commit data...
gmenu.c Loading commit data...
gmenu.h Loading commit data...
gmenuexporter.c Loading commit data...
gmenuexporter.h Loading commit data...
gmenumodel.c Loading commit data...
gmenumodel.h Loading commit data...
gmount.c Loading commit data...
gmount.h Loading commit data...
gmountoperation.c Loading commit data...
gmountoperation.h Loading commit data...
gmountprivate.h Loading commit data...
gnativesocketaddress.c Loading commit data...
gnativesocketaddress.h Loading commit data...
gnativevolumemonitor.c Loading commit data...
gnativevolumemonitor.h Loading commit data...
gnetworkaddress.c Loading commit data...
gnetworkaddress.h Loading commit data...
gnetworking.c Loading commit data...
gnetworking.h.in Loading commit data...
gnetworking.h.win32 Loading commit data...
gnetworkingprivate.h Loading commit data...
gnetworkmonitor.c Loading commit data...
gnetworkmonitor.h Loading commit data...
gnetworkmonitorbase.c Loading commit data...
gnetworkmonitorbase.h Loading commit data...
gnetworkmonitornetlink.c Loading commit data...
gnetworkmonitornetlink.h Loading commit data...
gnetworkmonitornm.c Loading commit data...
gnetworkmonitornm.h Loading commit data...
gnetworkservice.c Loading commit data...
gnetworkservice.h Loading commit data...
gnextstepsettingsbackend.c Loading commit data...
gnotification-private.h Loading commit data...
gnotification.c Loading commit data...
gnotification.h Loading commit data...
gnotificationbackend.c Loading commit data...
gnotificationbackend.h Loading commit data...
gnullsettingsbackend.c Loading commit data...
goutputstream.c Loading commit data...
goutputstream.h Loading commit data...
gpermission.c Loading commit data...
gpermission.h Loading commit data...
gpollableinputstream.c Loading commit data...
gpollableinputstream.h Loading commit data...
gpollableoutputstream.c Loading commit data...
gpollableoutputstream.h Loading commit data...
gpollableutils.c Loading commit data...
gpollableutils.h Loading commit data...
gpollfilemonitor.c Loading commit data...
gpollfilemonitor.h Loading commit data...
gpropertyaction.c Loading commit data...
gpropertyaction.h Loading commit data...
gproxy.c Loading commit data...
gproxy.h Loading commit data...
gproxyaddress.c Loading commit data...
gproxyaddress.h Loading commit data...
gproxyaddressenumerator.c Loading commit data...
gproxyaddressenumerator.h Loading commit data...
gproxyresolver.c Loading commit data...
gproxyresolver.h Loading commit data...
gregistrysettingsbackend.c Loading commit data...
gregistrysettingsbackend.h Loading commit data...
gremoteactiongroup.c Loading commit data...
gremoteactiongroup.h Loading commit data...
gresolver.c Loading commit data...
gresolver.h Loading commit data...
gresource-tool.c Loading commit data...
gresource.c Loading commit data...
gresource.h Loading commit data...
gresourcefile.c Loading commit data...
gresourcefile.h Loading commit data...
gschema.dtd Loading commit data...
gschema.its Loading commit data...
gschema.loc Loading commit data...
gseekable.c Loading commit data...
gseekable.h Loading commit data...
gsettings-mapping.c Loading commit data...
gsettings-mapping.h Loading commit data...
gsettings-tool.c Loading commit data...
gsettings.c Loading commit data...
gsettings.h Loading commit data...
gsettingsbackend.c Loading commit data...
gsettingsbackend.h Loading commit data...
gsettingsbackendinternal.h Loading commit data...
gsettingsschema-internal.h Loading commit data...
gsettingsschema.c Loading commit data...
gsettingsschema.h Loading commit data...
gsimpleaction.c Loading commit data...
gsimpleaction.h Loading commit data...
gsimpleactiongroup.c Loading commit data...
gsimpleactiongroup.h Loading commit data...
gsimpleasyncresult.c Loading commit data...
gsimpleasyncresult.h Loading commit data...
gsimpleiostream.c Loading commit data...
gsimpleiostream.h Loading commit data...
gsimplepermission.c Loading commit data...
gsimplepermission.h Loading commit data...
gsimpleproxyresolver.c Loading commit data...
gsimpleproxyresolver.h Loading commit data...
gsocket.c Loading commit data...
gsocket.h Loading commit data...
gsocketaddress.c Loading commit data...
gsocketaddress.h Loading commit data...
gsocketaddressenumerator.c Loading commit data...
gsocketaddressenumerator.h Loading commit data...
gsocketclient.c Loading commit data...
gsocketclient.h Loading commit data...
gsocketconnectable.c Loading commit data...
gsocketconnectable.h Loading commit data...
gsocketconnection.c Loading commit data...
gsocketconnection.h Loading commit data...
gsocketcontrolmessage.c Loading commit data...
gsocketcontrolmessage.h Loading commit data...
gsocketinputstream.c Loading commit data...
gsocketinputstream.h Loading commit data...
gsocketlistener.c Loading commit data...
gsocketlistener.h Loading commit data...
gsocketoutputstream.c Loading commit data...
gsocketoutputstream.h Loading commit data...
gsocketservice.c Loading commit data...
gsocketservice.h Loading commit data...
gsocks4aproxy.c Loading commit data...
gsocks4aproxy.h Loading commit data...
gsocks4proxy.c Loading commit data...
gsocks4proxy.h Loading commit data...
gsocks5proxy.c Loading commit data...
gsocks5proxy.h Loading commit data...
gsrvtarget.c Loading commit data...
gsrvtarget.h Loading commit data...
gsubprocess.c Loading commit data...
gsubprocess.h Loading commit data...
gsubprocesslauncher-private.h Loading commit data...
gsubprocesslauncher.c Loading commit data...
gsubprocesslauncher.h Loading commit data...
gtask.c Loading commit data...
gtask.h Loading commit data...
gtcpconnection.c Loading commit data...
gtcpconnection.h Loading commit data...
gtcpwrapperconnection.c Loading commit data...
gtcpwrapperconnection.h Loading commit data...
gtestdbus.c Loading commit data...
gtestdbus.h Loading commit data...
gthemedicon.c Loading commit data...
gthemedicon.h Loading commit data...
gthreadedresolver.c Loading commit data...
gthreadedresolver.h Loading commit data...
gthreadedsocketservice.c Loading commit data...
gthreadedsocketservice.h Loading commit data...
gtlsbackend.c Loading commit data...
gtlsbackend.h Loading commit data...
gtlscertificate.c Loading commit data...
gtlscertificate.h Loading commit data...
gtlsclientconnection.c Loading commit data...
gtlsclientconnection.h Loading commit data...
gtlsconnection.c Loading commit data...
gtlsconnection.h Loading commit data...
gtlsdatabase.c Loading commit data...
gtlsdatabase.h Loading commit data...
gtlsfiledatabase.c Loading commit data...
gtlsfiledatabase.h Loading commit data...
gtlsinteraction.c Loading commit data...
gtlsinteraction.h Loading commit data...
gtlspassword.c Loading commit data...
gtlspassword.h Loading commit data...
gtlsserverconnection.c Loading commit data...
gtlsserverconnection.h Loading commit data...
gunionvolumemonitor.c Loading commit data...
gunionvolumemonitor.h Loading commit data...
gunixconnection.c Loading commit data...
gunixconnection.h Loading commit data...
gunixcredentialsmessage.c Loading commit data...
gunixcredentialsmessage.h Loading commit data...
gunixfdlist.c Loading commit data...
gunixfdlist.h Loading commit data...
gunixfdmessage.c Loading commit data...
gunixfdmessage.h Loading commit data...
gunixinputstream.c Loading commit data...
gunixinputstream.h Loading commit data...
gunixmount.c Loading commit data...
gunixmount.h Loading commit data...
gunixmounts.c Loading commit data...
gunixmounts.h Loading commit data...
gunixoutputstream.c Loading commit data...
gunixoutputstream.h Loading commit data...
gunixsocketaddress.c Loading commit data...
gunixsocketaddress.h Loading commit data...
gunixvolume.c Loading commit data...
gunixvolume.h Loading commit data...
gunixvolumemonitor.c Loading commit data...
gunixvolumemonitor.h Loading commit data...
gvfs.c Loading commit data...
gvfs.h Loading commit data...
gvolume.c Loading commit data...
gvolume.h Loading commit data...
gvolumemonitor.c Loading commit data...
gvolumemonitor.h Loading commit data...
gwin32appinfo.c Loading commit data...
gwin32appinfo.h Loading commit data...
gwin32inputstream.c Loading commit data...
gwin32inputstream.h Loading commit data...
gwin32mount.c Loading commit data...
gwin32mount.h Loading commit data...
gwin32networking.h Loading commit data...
gwin32outputstream.c Loading commit data...
gwin32outputstream.h Loading commit data...
gwin32registrykey.c Loading commit data...
gwin32registrykey.h Loading commit data...
gwin32volumemonitor.c Loading commit data...
gwin32volumemonitor.h Loading commit data...
gzlibcompressor.c Loading commit data...
gzlibcompressor.h Loading commit data...
gzlibdecompressor.c Loading commit data...
gzlibdecompressor.h Loading commit data...
makefile.msc Loading commit data...
strinfo.c Loading commit data...
thumbnail-verify.c Loading commit data...
thumbnail-verify.h Loading commit data...