mutter/src/backends
Jonas Ådahl 237cdeef4c seat-impl: Destroy libinput objects on input thread on tear down
We didn't tear down the libinput objects in the right thread when
exiting, but did so after the input thread exited.

We also tried to destroy the libinput devices after the libinput context
was destroyed, which isn't allowed.

Fix these two issues by tearing down the libinput objects in a input
thread task that when done exits the input thread. This effectively
"flushes" the input thread tasks while destroying the libinput objects
just before the thread exits.

While it might fine to tear down libinput objects in an arbitrary (main
in this case) thread while making sure nothing pokes at it in parallel
(e.g. the input thread is gone), libinput is by definition single
threaded, and could theoretically make assumptions about this, and we
shouldn't cause any possible surprises here, so make sure to destroy it
all in the right thread.

This fixes an abort() on exit caused by an assert about invalid object
destruction in libinput.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1663>
2021-01-11 17:17:39 +00:00
..
native seat-impl: Destroy libinput objects on input thread on tear down 2021-01-11 17:17:39 +00:00
x11 x11: Support the CTM (color transform matrix) RandR property 2021-01-11 13:44:54 +00:00
edid-parse.c
edid.h
gsm-inhibitor-flag.h
meta-backend-private.h backends: Straighten MetaInputSettings creation 2020-11-27 15:14:34 +00:00
meta-backend-types.h backend: Don't pull generated headers (indirectly) 2020-10-06 16:16:21 +00:00
meta-backend.c backends/native: Add missing seat finalization paths 2020-11-27 15:14:34 +00:00
meta-barrier-private.h
meta-barrier.c barrier: Complain loudly if bogus barriers are created 2020-11-27 17:47:35 +01:00
meta-crtc-mode.c crtc-kms: Make KMS CRTC mode a type inheriting MetaCrtcMode 2020-06-11 09:20:16 +00:00
meta-crtc-mode.h crtc-kms: Make KMS CRTC mode a type inheriting MetaCrtcMode 2020-06-11 09:20:16 +00:00
meta-crtc.c crtc: Move out MetaCrtcMode into its own file 2020-06-10 18:54:51 +00:00
meta-crtc.h crtc: Move out MetaCrtcMode into its own file 2020-06-10 18:54:51 +00:00
meta-cursor-renderer.c clutter: Drop clutter_input_device_get_coords() method 2020-11-27 15:14:33 +00:00
meta-cursor-renderer.h backends: Move HW cursor inhibitors to MetaBackend 2020-11-27 15:14:33 +00:00
meta-cursor-sprite-xcursor.c cursor-sprite/xcursor: Fall back to gray square if missing theme 2020-11-16 13:49:05 +00:00
meta-cursor-sprite-xcursor.h
meta-cursor-tracker-private.h core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-cursor-tracker.c backends: Make pointer cursor invisible until the stage is shown 2020-11-27 15:14:33 +00:00
meta-cursor.c backends: Add argument for best scale on MetaCursorSprite::prepare-at 2020-11-27 15:14:33 +00:00
meta-cursor.h backends: Add argument for best scale on MetaCursorSprite::prepare-at 2020-11-27 15:14:33 +00:00
meta-dbus-session-watcher.c
meta-dbus-session-watcher.h
meta-display-config-shared.h
meta-dnd-private.h
meta-egl-ext.h
meta-egl.c
meta-egl.h
meta-gles3-table.h
meta-gles3.c
meta-gles3.h
meta-gpu.c output: Move output info to MetaOutputInfo struct 2020-06-10 18:54:50 +00:00
meta-gpu.h
meta-idle-monitor-dbus.c Make meta_* logging utilities not require line break 2020-10-08 16:38:41 +02:00
meta-idle-monitor-dbus.h
meta-idle-monitor-private.h
meta-idle-monitor.c
meta-input-device-private.h backends: Add MetaInputDevice derivable class 2020-03-24 18:07:31 +00:00
meta-input-device.c
meta-input-mapper-private.h backends: Make MetaInputMapper take over MetaInputSettings public API 2020-11-27 15:14:33 +00:00
meta-input-mapper.c backends: Disconnect MetaInputMapper signal connection on device dispose 2020-12-28 19:11:26 +01:00
meta-input-settings-private.h backends: Handle numlock saving/restoring directly in backends 2020-11-27 15:14:33 +00:00
meta-input-settings.c backends: Handle numlock saving/restoring directly in backends 2020-11-27 15:14:33 +00:00
meta-keymap-utils.c *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
meta-keymap-utils.h
meta-logical-monitor.c crtc: Move MetaCrtcConfig field to instance private 2020-06-10 18:54:50 +00:00
meta-logical-monitor.h *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
meta-monitor-config-manager.c monitor-config-manager: Handle multiple builtin panels gracefully 2020-11-27 09:11:43 +01:00
meta-monitor-config-manager.h monitor-manager: Rename *Info structs to *Assignment 2020-06-10 18:54:50 +00:00
meta-monitor-config-migration.c
meta-monitor-config-migration.h
meta-monitor-config-store.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-monitor-config-store.h
meta-monitor-manager-dummy.c backend/dummy: Do not enforce minimum screen size 2020-10-23 12:12:15 +01:00
meta-monitor-manager-dummy.h crtc: Make implementations inherit MetaCrtc 2020-06-10 18:54:51 +00:00
meta-monitor-manager-private.h x11: Support the CTM (color transform matrix) RandR property 2021-01-11 13:44:54 +00:00
meta-monitor-manager.c x11: Support the CTM (color transform matrix) RandR property 2021-01-11 13:44:54 +00:00
meta-monitor-transform.c
meta-monitor-transform.h crtc: Move all_transforms field into instance private 2020-06-10 18:54:50 +00:00
meta-monitor.c *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
meta-monitor.h
meta-orientation-manager.c backends: Add method/property to get accelerometer availability 2020-09-05 07:25:02 +00:00
meta-orientation-manager.h backends: Add method/property to get accelerometer availability 2020-09-05 07:25:02 +00:00
meta-output.c output: Move edid parse function to the right file 2020-10-21 17:04:44 +05:30
meta-output.h x11: Support the CTM (color transform matrix) RandR property 2021-01-11 13:44:54 +00:00
meta-pointer-constraint.c backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-pointer-constraint.h backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-profiler.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-profiler.h
meta-remote-access-controller-private.h
meta-remote-access-controller.c remote-access-handle: Add 'is-recording' property 2020-07-31 10:41:38 +02:00
meta-remote-desktop-session.c remote-desktop: Allow using custom scroll source for NotifyPointerAxis 2021-01-11 10:12:53 +01:00
meta-remote-desktop-session.h
meta-remote-desktop.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-remote-desktop.h
meta-renderer-view.c renderer-view: Use graphene APIs 2020-10-06 15:34:48 +00:00
meta-renderer-view.h renderer-view: Keep track of what CRTC it is associated with 2020-07-02 19:36:50 +02:00
meta-renderer.c stage-view: Add clutter_stage_view_destroy() 2020-08-13 06:34:04 +00:00
meta-renderer.h clutter: Paint views with individual frame clocks 2020-07-02 19:36:51 +02:00
meta-screen-cast-area-stream-src.c backends: Move HW cursor inhibitors to MetaBackend 2020-11-27 15:14:33 +00:00
meta-screen-cast-area-stream-src.h
meta-screen-cast-area-stream.c screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-area-stream.h screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-monitor-stream-src.c backends: Move HW cursor inhibitors to MetaBackend 2020-11-27 15:14:33 +00:00
meta-screen-cast-monitor-stream-src.h
meta-screen-cast-monitor-stream.c screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-monitor-stream.h screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-session.c remote-access-handle: Add 'is-recording' property 2020-07-31 10:41:38 +02:00
meta-screen-cast-session.h
meta-screen-cast-stream-src.c cogl: Turn CoglFramebuffer, CoglOffscreen and CoglOnscreen into GObjects 2020-10-16 16:17:38 +00:00
meta-screen-cast-stream-src.h screen-cast: Track and always record cursors 2020-08-05 11:11:38 +02:00
meta-screen-cast-stream.c screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-stream.h screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-window-stream-src.c core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-screen-cast-window-stream-src.h
meta-screen-cast-window-stream.c screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-window-stream.h screen-cast: Add screen cast flag to streams 2020-07-30 09:51:16 +02:00
meta-screen-cast-window.c
meta-screen-cast-window.h
meta-screen-cast.c Remove misplaced line break in g_* logging functions 2020-10-08 16:38:41 +02:00
meta-screen-cast.h screen-cast: Disable DMA buffer based screen casting for QXL 2020-08-29 10:32:20 +00:00
meta-settings-private.h screen-cast: Add 'dma-buf-screen-sharing' experimental feature 2020-09-14 16:33:16 +00:00
meta-settings.c screen-cast: Add 'dma-buf-screen-sharing' experimental feature 2020-09-14 16:33:16 +00:00
meta-stage-private.h cursor-renderer: Always keep the cursor overlay on the stage 2020-08-05 11:11:38 +02:00
meta-stage.c clutter: Simplify stage state management 2020-12-08 15:37:38 +00:00
meta-viewport-info.c backends: Add method to get extents from viewport info 2020-11-27 15:14:33 +00:00
meta-viewport-info.h backends: Add method to get extents from viewport info 2020-11-27 15:14:33 +00:00