gamescope/src
Joshua Ashton a5af1a78c1 steamcompmgr: Avoid deadlock between import_commit and destroy_buffer
Very rarely we can see a deadlock between import_commit and destroy_buffer where:

- destroy_buffer is waiting on `wlr_buffer_map_lock` and has `wlserver_lock` (from up the chain)

- import_commit has `wlr_buffer_map_lock` and is waiting on `wlserver_lock`

To avoid this, we simply replace the lock_guard in import_commit with a unique_lock and manually unlock this before going into the section where we need to lock the wl_server.

This is safe for a few reasons:
- 1: All accesses to wlr_buffer_map are done before this lock.
- 2: destroy_buffer cannot be called from this buffer before now
     as it only happens because of the signal added below.
- 3: "References to elements in the unordered_map container remain
	  valid in all cases, even after a rehash."
2021-12-13 23:46:39 -08:00
..
composite.comp rendervulkan: Do not premultiply color 2021-11-22 21:48:58 -08:00
drm.cpp Dedupe and memoize fb_id and vulkan texture per buffer. 2021-11-22 21:45:52 -08:00
drm.hpp Dedupe and memoize fb_id and vulkan texture per buffer. 2021-11-22 21:45:52 -08:00
gpuvis_trace_utils.h steamcompmgr.cpp: rise 2020-01-22 21:50:01 -08:00
ime.cpp ime: add support for actions 2021-10-08 22:55:01 -07:00
ime.hpp Implement a subset of input-method-unstable-v2 2021-10-08 22:55:01 -07:00
log.cpp Simplify errorf_errno a bit 2021-08-25 18:16:44 +02:00
log.hpp wlserver: set wlroots log handler 2021-09-01 18:31:45 +02:00
main.cpp steamcompmgr: Add --cursor-hotspot 2021-11-26 21:45:39 +01:00
main.hpp Fix BIsNested return type 2021-09-14 18:36:27 +02:00
modegen.cpp Introduce --generate-drm-mode 2021-11-20 16:01:39 -08:00
modegen.hpp Introduce --generate-drm-mode 2021-11-20 16:01:39 -08:00
pipewire.cpp pipewire: set CORRUPTED flag when buffer params mismatch 2021-11-01 14:51:03 +01:00
pipewire.hpp Copy Vulkan textures in PipeWire thread 2021-11-01 10:01:32 +01:00
rendervulkan.cpp rendervulkan: Blend in linear space 2021-11-22 21:48:58 -08:00
rendervulkan.hpp Use atomics for CVulkanTexture refcounts. 2021-11-22 21:45:52 -08:00
sdlscancodetable.hpp sdlwindow: put all the SDL I/O code in the same spot. 2020-09-01 23:00:06 -07:00
sdlwindow.cpp sdlwindow: make most variables static 2021-09-21 11:00:51 +02:00
sdlwindow.hpp sdlwindow: mimic window shown. 2020-09-13 00:19:02 -07:00
steamcompmgr.cpp steamcompmgr: Avoid deadlock between import_commit and destroy_buffer 2021-12-13 23:46:39 -08:00
steamcompmgr.hpp steamcompmgr: Add --cursor-hotspot 2021-11-26 21:45:39 +01:00
udev_is_boot_vga.c SteamOS: add udev_is_boot_vga tool to detect hybrid configs 2019-09-09 11:02:32 -07:00
vblankmanager.cpp Name our threads 2021-10-27 17:18:29 +02:00
vblankmanager.hpp Stop using X11 events for vblankmanager 2021-06-09 18:42:38 +02:00
wlserver.cpp Disable Xwayland touch pointer emulation 2021-11-02 12:21:12 +01:00
wlserver.hpp Switch to vendored protocol 2021-10-08 22:55:01 -07:00