https://bugs.winehq.org/show_bug.cgi?id=56364
TasosSah winebugzilla@tasossah.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|9.2 |9.3
--- Comment #5 from TasosSah winebugzilla@tasossah.com ---
Your code is doing a busy wait, not sure if that is normal.
That is what CrazyFactoryServer.exe does. It causes equally high CPU load on my machine, just like server.exe.
Fun fact: In vanilla wine this issue only occurs when I delete my WINEPREFIX and then run the command. Will bisect staging tomorrow (or so).
I just tested it, and it does not work in vanilla wine no matter how many times I start it. Make sure to run it in a virtual desktop for consistency. It's possible your WM does something which causes a message to be sent, which might get the whole thing unstuck. Although under compiz nothing I do to the server window makes it work.
$ /opt/wine-devel/bin/wine --version wine-9.3
I did notice however that I can click and move the server window in vanilla wine (inside the virtual desktop). The game, however, seems to break when it loses focus.
Btw, are you sure the game uses the same messageloop, or how did you figure that out?
I am pretty confident it is the same loop. I disassembled it many years ago to create the test case, so the details are a bit fuzzy. Looking at it again, it is more like this (which has the same effect in this case):
``` BOOL run = TRUE; do { while(PeekMessageA(&Msg, 0, 0, 0, PM_REMOVE)) { if(Msg.message == WM_QUIT) { run = FALSE; break; } TranslateMessage(&Msg); DispatchMessageA(&Msg); } } while(DoServerWork() && run); ```