Yes, isn't that what you meant by "separate mappings per thread"? Or maybe you just meant avoid mapping the desktop shared memory multiple times on the client side?
I meant to avoid mapping the desktop multiple times. There are different solutions, I suggested something that seems similar to Windows kernel memory mapping. We could use something like `alloc_session_shared` from https://gitlab.winehq.org/jacek/wine/-/commit/fc899509484cb381ceb9dba1a788cc... (without the handle argument).
Yes, but a process can have multiple desktops, and that "would make it more complicated to support an arbitrary number of threads."