Revision c28204066c2d3bae989132ab15e8df437ae38f3d authored by Thiago Macieira on 02 August 2012, 14:15:22 UTC, committed by Qt by Nokia on 25 August 2012, 08:35:26 UTC
Unlocking a mutex can never throw an exception. That doesn't make
sense and our code should make sure it can't happen. Right now,
provided that the system-level functions don't throw, we don't either.

Locking a mutex cannot throw on Linux because we use futexes
directly. A non-recursive mutex is just a futex, whereas a recursive
mutex uses a mutex (a futex) to manage a lock count.

However, on other platforms, due to the freelist, there can be memory
allocation, which means it might throw std::bad_alloc. Not because of
the freelist itself (that uses malloc and will just crash if malloc
fails) but because of Q_GLOBAL_STATIC. In 5.1, the global static will
be noexcept provided the type's constructor is so too (it is, in this
case).

Change-Id: I4c562383f48de1be7827b9afb512d73eaf0792d5
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
1 parent 98437f0
Raw File
INSTALL
        INSTALLING Qt Source Package Version %VERSION%.

For full installation instructions for each supported platform, please
see http://qt.nokia.com/doc/%SHORTVERSION%/installation.html, the file 
doc/html/installation.html in this package, or follow one of the following
links:

Embedded Linux:   http://qt.nokia.com/doc/%SHORTVERSION%/qt-embedded-install.html
Mac OS X:         http://qt.nokia.com/doc/%SHORTVERSION%/install-mac.html
Windows:          http://qt.nokia.com/doc/%SHORTVERSION%/install-win.html
Windows CE:       http://qt.nokia.com/doc/%SHORTVERSION%/install-wince.html
X11 Platforms:    http://qt.nokia.com/doc/%SHORTVERSION%/install-x11.html
back to top