mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-09-28 10:07:13 +02:00
GDBusWorker: if a read was cancelled it means we closed the connection
This was a regression caused by my previous work on GDBusWorker thread-safety (Bug #651268). The symptom is that if you disconnect a GDBusConnection locally, the default implementation of GDBusConnection::closed terminates your process, even though it shouldn't do that for locally-closed connections; this is because GDBusWorker didn't think a cancelled read was a local close. Bug: https://bugzilla.gnome.org/show_bug.cgi?id=662100 Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
This commit is contained in:
@@ -704,7 +704,11 @@ _g_dbus_worker_do_read_cb (GInputStream *input_stream,
|
|||||||
|
|
||||||
if (bytes_read == -1)
|
if (bytes_read == -1)
|
||||||
{
|
{
|
||||||
|
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||||||
|
_g_dbus_worker_emit_disconnected (worker, FALSE, NULL);
|
||||||
|
else
|
||||||
_g_dbus_worker_emit_disconnected (worker, TRUE, error);
|
_g_dbus_worker_emit_disconnected (worker, TRUE, error);
|
||||||
|
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user