Skip to content

session: Unexport worker interface if session is disposed early

Ray Strode requested to merge fix-early-session-disposal into main

At the moment we don't unexport the worker interface if the session is disposed before gnome-shell connects to the connection.

In theory it should get cleaned up automatically when the connection is freed, but if there is a delay in it being freed (such as a ref held on it from another thread to dispatch a method handler), then the worker interface could get dispatched with a disposed session object.

This commit makes sure to explicitly unexport the worker manager interface if the session is disposed before a connection is made.

It also switches to using g_signal_connect_object instead of g_signal_connect for an extra level of protection.

Closes #871 (closed)

Merge request reports