Jinoh Kang (@iamahuman) commented about server/file.h:
+extern void free_shared_object( int index ); +extern const desktop_shm_t *get_shared_desktop( int index ); + +#define SHARED_WRITE_BEGIN( object, type ) \ + do { \ + const type *__shared = (object); \ + type *shared = (type *)__shared; \ + LONG64 __seq = shared->obj.seq + 1, __end = __seq + 1; \ + assert( (__seq & 1) != 0 ); \ + __WINE_ATOMIC_STORE_RELEASE( &shared->obj.seq, &__seq ); \ + do + +#define SHARED_WRITE_END \ + while(0); \ + assert( __seq == shared->obj.seq ); \ + __WINE_ATOMIC_STORE_RELEASE( &shared->obj.seq, &__end ); \ Minor nit, but is there any reason why the `\`s are not aligned at 4-space tabulation boundary? This padding has 2 extra spaces (mod 4). I think it's quite hard to align the `\`s with <kbd>Tab</kbd>.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3103#note_64976