mirror of
https://github.com/brl/mutter.git
synced 2025-03-25 04:33:52 +00:00
kms/impl-device: Clear fd source on prepare-shutdown
This ensures we won't receive any untimely page flip callbacks during later phases of shutting down. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2159>
This commit is contained in:
parent
4276e9ddd3
commit
cd517216ae
@ -852,6 +852,19 @@ meta_kms_impl_device_hold_fd (MetaKmsImplDevice *impl_device)
|
|||||||
priv->fd_hold_count++;
|
priv->fd_hold_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
clear_fd_source (MetaKmsImplDevice *impl_device)
|
||||||
|
{
|
||||||
|
MetaKmsImplDevicePrivate *priv =
|
||||||
|
meta_kms_impl_device_get_instance_private (impl_device);
|
||||||
|
|
||||||
|
if (!priv->fd_source)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g_source_destroy (priv->fd_source);
|
||||||
|
g_clear_pointer (&priv->fd_source, g_source_unref);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_kms_impl_device_unhold_fd (MetaKmsImplDevice *impl_device)
|
meta_kms_impl_device_unhold_fd (MetaKmsImplDevice *impl_device)
|
||||||
{
|
{
|
||||||
@ -867,12 +880,7 @@ meta_kms_impl_device_unhold_fd (MetaKmsImplDevice *impl_device)
|
|||||||
if (priv->fd_hold_count == 0)
|
if (priv->fd_hold_count == 0)
|
||||||
{
|
{
|
||||||
g_clear_pointer (&priv->device_file, meta_device_file_release);
|
g_clear_pointer (&priv->device_file, meta_device_file_release);
|
||||||
|
clear_fd_source (impl_device);
|
||||||
if (priv->fd_source)
|
|
||||||
{
|
|
||||||
g_source_destroy (priv->fd_source);
|
|
||||||
g_clear_pointer (&priv->fd_source, g_source_unref);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -999,6 +1007,8 @@ meta_kms_impl_device_prepare_shutdown (MetaKmsImplDevice *impl_device)
|
|||||||
|
|
||||||
if (klass->prepare_shutdown)
|
if (klass->prepare_shutdown)
|
||||||
klass->prepare_shutdown (impl_device);
|
klass->prepare_shutdown (impl_device);
|
||||||
|
|
||||||
|
clear_fd_source (impl_device);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
Loading…
x
Reference in New Issue
Block a user