Instead of https://gitlab.winehq.org/wine/wine/-/merge_requests/7815, for https://gitlab.winehq.org/wine/wine/-/merge_requests/7226, this only split the sync ops to a separate vtable and let objects delegate theirs to a separate object.
This starts using a event-like interface for most objects, leaving the decision regarding if/how to split sync themselves / integrate inproc syncs for later.
--
v2: server: Use an event as debug event sync.
server: Use an event as file lock sync.
server: Use an event as process startup info sync.
server: Use an event as thread context sync.
server: Use an event as thread apc sync.
server: Use an event as fd sync.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7848
Alexandros Frantzis (@afrantzis) commented about dlls/winewayland.drv/wayland_pointer.c:
> }
> else if (!needs_relative && pointer->zwp_relative_pointer_v1)
> {
> + pointer->accum_x = pointer->accum_y = 0;
I was thinking... if we perform the initialization/zeroing just before enabling relative motion in the if clause above, we reduce (although we do not completely eliminate) the window for the data race mentioned in a previous comment (i.e., some handler running concurrently). This also takes care of the lack of explicit initialization of the accum_x/accum_y members during wayland_pointer init.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7806#note_101383
This serie finishes the migration of the remaining types from TPI
stream (function signature, struct/class/union, enum) to new PDB
backend.
And it removes dual allocation of symt_* in old PDB backed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7849