"The King of Fighters '98 Ultimate Match Final Edition" depends on this behavior. At least, the build I have is; it seems other builds are not.
Signed-off-by: Giovanni Mascellani gmascellani@codeweavers.com
-- v4: xactengine3_7/tests: Test notifications when loading a wave bank. fixup! include/wine: Add ANSI color codes. ntdll: Dump executable. include/wine: Add ANSI color codes. ntdll: Introduce x86emu. ntdll: Allowing injecting an int3. ntdll: Allow setting a watchpoint. include/wine: Introduce STAR to dereference a generic number. widl: Generate empty interface implementations. ntdll: Log architecture. ntdll: Implement debug writing to file. ntdll: Mark Wine code in mmap output. ntdll: Support dynamically enabling trace messages. ntdll: Log signals early. ntdll: Dump a single symbol. ntdll: Capture stack backtrace from UNIX side. ntdll: Add facility to disassemble code. ntdll: Print the command line when a process is started. ntdll: Dump memory mappings and unmappings. ntdll: Make dynamic unwind entries accessible from UNIX side. ntdll: Add +microsecs channel for precise timestamps. ntdll: Log return address. ntdll: Log file and line number. ntdll: Do not suppress useful log fields on \1. ntdll: Implement log locking and disabling. ntdll: Add a mechanism to ease development calls. ntdll: Support gio channel by default.
This merge request has too many patches to be relayed via email. Please visit the URL below to see the contents of the merge request. https://gitlab.winehq.org/wine/wine/-/merge_requests/398
Alistair Leslie-Hughes (@alesliehughes) commented about dlls/xactengine3_7/tests/xact3.c:
- filename = load_resource(L"test.xwb");
- file = CreateFileW(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
- ok(file != INVALID_HANDLE_VALUE, "Cannot open file\n");
- streaming_params.file = file;
- streaming_params.packetSize = 0x800;
- hr = IXACT3Engine_CreateStreamingWaveBank(engine, &streaming_params, ¬ification_data.wave_bank);
- ok(hr == S_OK, "Cannot create a streaming wave bank, hr %#lx\n", hr);
- for (i = 0; i < 10 && !notification_data.received; i++)
- {
IXACT3Engine_DoWork(engine);
Sleep(1);
- }
This really shouldn't be a loop.
Though more work, it should be a thread with events to detect when the notification(s) have occurred.
On Mon Jul 11 11:16:20 2022 +0000, Alistair Leslie-Hughes wrote:
This really shouldn't be a loop. Though more work, it should be a thread with events to detect when the notification(s) have occurred.
What is the problem if it is a loop in the same thread?
I'd agree with you if this was a real program that mustn't block the main thread to keep the application responsive, but here the main thread is going to wait for the notification anyway, so I don't understand what would be the advantage of offloading `DoWork()` to another thread.