Recursive use of non-recursive std::mtuex in Scheduler::ProcessTaskScheduling?
Luboš Luňák
l.lunak at collabora.com
Wed Feb 10 16:55:20 UTC 2021
On Tuesday 09 of February 2021, Luboš Luňák wrote:
> On Tuesday 09 of February 2021, Jan-Marek Glogowski wrote:
> > That is the new code from https://gerrit.libreoffice.org/c/core/+/110538
> >
> > I think we have to revert that. I don't see a way to prevent AnyInput /
> > PeekMessage to process messages. There is GetQueueStatus, but I guess
> > that's not possible to be used correctly with our complicated user
> > WM_USER based setup.
>
> I think GetQueueStatus() should be sufficient for this specific case. I'll
> try to do that change and see if it helps.
Actually the way I see it GetQueueStatus() should be sufficient for the
generic use in AnyInput() and in fact _the_ Win32 function to use. I'm basing
this on the assumption that AnyInput() is supposed to do what its
documentation says it's meant to do, namely check if there are events pending
(and thus not process anything). Now I realize it may be somewhat naive to
make such assumptions when it comes to old OOo code, but I've tested
https://gerrit.libreoffice.org/c/core/+/110718 with all the relevant
bugreports in the file's history[*] and I could see no problem. Does somebody
see a possible problem with this solution?
[*]
https://bz.apache.org/ooo/show_bug.cgi?id=44560
https://bz.apache.org/ooo/show_bug.cgi?id=78659
https://bugs.documentfoundation.org/show_bug.cgi?id=109123
https://bugs.documentfoundation.org/show_bug.cgi?id=112975
https://bugs.documentfoundation.org/show_bug.cgi?id=140293
History also mentions #108919#, but that's Sun-internal, and that change was
later reverted.
--
Luboš Luňák
l.lunak at collabora.com
More information about the LibreOffice
mailing list