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