If a session is shutdown when its command_state is already COMPLETE,
session_handle_source_shutdown calls session_set_stopped, which calls
session_command_complete which will submit the op at the head of commands again,
despite it having already been submitted.
Given that only the op at the head of commands can be in the submitted state,
tracking it as a command state makes more sense to me. And if the command state
is SUBMITTED we know not to submit the op again.
* * *
Superceded !8270
--
v3: mf: Add a SUBMITTED command state to avoid multiple submission of the same op.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8722
Mostly for vendoring of future fluidsynth versions.
--
v2: libs/fluidsynth: Use InterlockedExchangeAdd() in g_atomic_int_add().
libs/fluidsynth: Return thread return value from g_thread_join().
libs/fluidsynth: Fix definition of g_atomic_int_dec_and_test().
libs/fluidsynth: Fix argument flag handling in g_file_test().
libs/fluidsynth: Round up sleep duration in g_usleep().
libs/fluidsynth: Use full memory barrier in g_atomic_int_get().
libs/fluidsynth: Fix double close of thread handle in g_thread_unref().
libs/fluidsynth: Fix g_mutex_init() and g_cond_init().
https://gitlab.winehq.org/wine/wine/-/merge_requests/9023
--
v4: win32u: Read extra class info from the shared memory object.
server: Move extra class info to the shared memory object.
server: Allocate shared memory objects with dynamic size.
win32u: Read class info from the shared memory object.
server: Move class info to the shared memory object.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8976
Unlike the message queue for which I believe we can get rid of any special handling, I don't see a way to avoid a dedicated inproc sync for user APCs. This will make sure that the sync gets created on thread creation. It could arguably be lazily allocated instead, but I don't see a reason to delay the failure to a later time and end up with successfully created but unalertable thread when they are supposed to be.
--
v2: server: Create an inproc sync for user APC signaling.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9014
This serie:
- drastically reduce winedbg attachement time when lots of modulesi
or exported symbols are present (current use case here reduces from
12 seconds to less than a second)
- fixes a crash in dbghelp.
--
v2: dbghelp: Don't crash on stripped image without DEBUG directories.
dbghelp: Add public symbols out of export table when no debug info is present.
winedbg: Simplify fetching module name.
https://gitlab.winehq.org/wine/wine/-/merge_requests/9078