| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The available signal handlers were stored in a list, but this is
inherently not async-signal-safe. It was giving us the flexibility to
have multiple signal handlers installed for a single signal, but in
practice this is not a requirement at all and was never used.
The new solution is to use a static array of SigHandler*, one handler
per signal (ideally, we would store each std::function inside an
atomic, but that is not possible).
Removal of signal handlers is tricky even with atomics, because signal
handlers block the current thread completely. This means we cannot
delete a removed SigHandler instance immediately, but we can safely
do so after a grace period (currently set to 10min).
Also marked all libc and kernel functions with '::', as is the case
in the rest of the AM source code.
Change-Id: Ibd79fd489dc9d4db8edbf569f7ce29dee30c8d02
Pick-to: 6.11
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Our structured-exception handler was effectively disabled by the CRT
due to a changed call order for static constructors
- RaiseException() to re-throw exceptions does not work across modules
for some arcane reason, but calling the compiler-internal wrapper
CxxThrowException still does.
Change-Id: I2dbfe10e014fb41a030ca0ce9f81101e9aef99ec
Pick-to: 6.11
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
| |
|
|
|
|
|
|
| |
It's been a long time since the last round, so there are a lot of fixes
Change-Id: Ic226130eed0d03776749a2a04806efaa537f3f19
Pick-to: 6.11
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|
|
|
This is part 2 of this patch series. Part 1 was about converting the
libs from static to shared.
This patch now consolidates the library zoo into more manageable and
logical chunks. Plus this will also help with keeping the hit to the
startup performance (incurred by part 1) in check.
The new setup closely follows the QML module nomenclature, but needs
to account for the tool builds as well.
The new libs are:
- Common no changes
- Package a combination of Package, Application and Crypto
- Shared renamed from SharedMain and combined with Monitor and
IntentClient
- SystemUI renamed from Main and combined with Manager, DBus,
IntentServer and Window
- Application renamed from ApplicationMain
Because the CrashHandler is using a "constructor" function, it had to
be moved from the Common to the Shared lib to avoid having the custom
crash handler also in the tools, as they need to install their own
CTRL+C handler at times.
In addition the 3 QML import modules are now built as official QML
plugins and they are installed into $QTDIR/qml as any other import
library.
NB! There is a problem we still have to solve: custom appman binaries
(system-ui's) are currently built by linking against Qt::AppManMain,
but this no longer exists. It would be ideal if we could add an alias
here. The other renamed modules are not that problematic, as they
shouldn't be used outside of the appman project itself.
If an alias is not possible, a dummy library which depends on the new
"SystemUI" one should also do the trick.
Change-Id: Id07e05a523c48e773c295c5be2f27804229155e0
Pick-to: 6.11
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
|