On Thu Mar 21 11:56:13 2024 +0000, Jinoh Kang wrote:
@rbernon said on this matter "I personally like that it looks like server requests, it makes wineserver communication stand out compared to other function calls." I don't have strong opinions either way. Even if we *do* get rid of the macro, though, I'd propose that we keep this documentation no matter what since people can write bad code (emphasis on the "conditional" part). *Personally* I'd go even further and just have a function that does everything: receive field offsets, and have an internal loop that fills out the out pointers (so that the user doesn't have to write the loop).
FWIW we do read user shared data (which counts as "wineserver communication") without a macro. In addition, our session shared mapping is quite similar to `gSharedInfo`, which also exists on Windows (which doesn't involve a "wineserver"). Also, the "wineserver communication" is unidirectional (client doesn't send to server), so maybe not using macro could be ok-ish?
Regardless, I think `SHARED_WRITE_BEGIN` is still useful though.