Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


Hi Stephan,

On Fri, 2015-09-11 at 11:25 +0200, Stephan Bergmann wrote:
--- a/vcl/source/opengl/OpenGLHelper.cxx
+++ b/vcl/source/opengl/OpenGLHelper.cxx
@@ -554,6 +554,7 @@ void OpenGLWatchdogThread::execute()
                      nUnchanged = 0;
                      std::abort();
                  }
+                // coverity[dead_error_line] - we might have caught SIGABRT and failed to exit 
yet
                  bAbortFired = true;
              }
          }

What am I missing here?  abort is guaranteed to not return to its caller 
(even if there is a handler for SIGABRT).

        Good question; it may well be guaranteed - but - seemingly I saw this
code-path continue; perhaps this is an artifact of the debugger under
windows:

        https://msdn.microsoft.com/en-us/library/k089yyh0.aspx

        has some more details; but I'd swear to not having pressed ignore in my
cases either so ... ;->

  So, like Coverity, I fail to 
see how that line can ever be reached (and bAbortFired, of automatic 
storage during in OpenGLWatchdogThread::execute, ever be true).

        =) well, me too - was gob-smacked etc. of course, in the ideal world
this is true; perhaps I was just gotcha'd by the debugging environment.

        Then again - during our abort handling - we spend a lot of time
creating GUI dialogs and so on on the main thread (which is by now this
one) - that could easily also wedge / lock-up ;-) that's particularly
true wrt. the problem of getting the solar-mutex; my hope is that the
abort handler is good with dropping that.

        Which thread would you expect the signal to be delivered to (I wonder)
- it's all a bit interesting I suspect.

        My hope was that the watchdog would carry on working in these cases &
kill us again more aggressively if necessary if people insist on
ignoring these guys.

really wanted to do is make bAbortFired static, and set it to true 
/before/ calling std::abort()?

        I guess we could launch another watchdog thread in this case (if indeed
we believe the that std::abort never returns ;-) in which case making
that static would be useful indeed. Would love to see a patch like that.

        HTH,

                Michael.

-- 
 michael.meeks@collabora.com  <><, Pseudo Engineer, itinerant idiot


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.