Virtual filesystem implementation for GIO

  • Ondrej Holy's avatar
    gdbus: Add workaround for deadlocks when cancelling jobs · a1e85eda
    Ondrej Holy authored
    GVfs calls gvfs_dbus_daemon_proxy_new() in cancelled signal handler which
    internally needs CONNECTION_LOCK(connection). The lock can be unfortunately
    held by gdbus worker thread which can call g_cancellable_disconnect(). This
    obviously leads to deadlocks. I don't see any reason why we have to block
    g_cancellable_disconnect() because of gvfs_dbus_daemon_proxy_new() resp.
    gvfs_dbus_daemon_call_cancel(). Let's call it over idle source to not block
    the cancelled signal handler in order to prevent the deadlocks.
    
    It would be better to fix this issue directly in gdbus codes, however, it
    is not fully clear to me, what is a proper way to fix this.
    
    glib#1023
    a1e85eda
Name
Last commit
Last update
.gitlab-ci Loading commit data...
client Loading commit data...
common Loading commit data...
daemon Loading commit data...
man Loading commit data...
metadata Loading commit data...
monitor Loading commit data...
po Loading commit data...
test Loading commit data...
.gitlab-ci.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING Loading commit data...
NEWS Loading commit data...
NEWS.pre-1-2 Loading commit data...
README.md Loading commit data...
dbus.service.in Loading commit data...
gvfs.doap Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...
meson_post_install.py Loading commit data...