Rémi Bernon (@rbernon) commented about server/device.c:
irp->thread = thread ? (struct thread *)grab_object( thread ) : NULL; if (irp->file) list_add_tail( &irp->file->requests, &irp->dev_entry ); list_add_tail( &manager->requests, &irp->mgr_entry ); - if (list_head( &manager->requests ) == &irp->mgr_entry) wake_up( &manager->obj, 0 ); /* first one */ + if (list_head( &manager->requests ) == &irp->mgr_entry) + { + /* first one */ + wake_up( &manager->obj, 0 ); + set_inproc_event( manager->inproc_sync );
What about passing the inproc sync to wake_up, and setting it there instead of having to append a call after every wake_up calls? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7226#note_93873