Fixes: NB#276265 - After SSU with build version 20.2011.32-0.REQ.759009, applications running in the background and foreground are crashing

RevBy: Pertti Kellomaki
pull/1/head
Alexey Shilov 14 years ago
parent 73fc43a171
commit fdab30f13e

2
debian/changelog vendored

@ -1,6 +1,6 @@
applauncherd (1.0.4) unstable; urgency=low
*
* Fixes: NB#276265 - After SSU with build version 20.2011.32-0.REQ.759009, applications running in the background and foreground are crashing
-- Alexey Shilov <alexey.shilov@nokia.com> Mon, 15 Aug 2011 11:30:49 +0300

@ -765,16 +765,14 @@ void Daemon::killBoosters()
void Daemon::setUnixSignalHandler(int signum, sighandler_t handler)
{
struct sigaction *oldAct = new struct sigaction();
struct sigaction newAct;
sighandler_t old_handler = signal(signum, handler);
newAct.sa_handler = handler;
sigemptyset(&newAct.sa_mask);
newAct.sa_flags |= SA_RESTART;
if (sigaction(signum, &newAct, oldAct) == 0)
if (old_handler != SIG_ERR)
{
m_originalSigHandlers[signum] = old_handler;
}
else
{
m_originalSigHandlers[signum] = oldAct;
} else {
throw std::runtime_error("Daemon: Failed to set signal handler");
}
}
@ -783,7 +781,7 @@ void Daemon::restoreUnixSignalHandlers()
{
for (SigHandlerMap::iterator it = m_originalSigHandlers.begin(); it != m_originalSigHandlers.end(); it++ )
{
sigaction(it->first, it->second, NULL);
signal(it->first, it->second);
}
m_originalSigHandlers.clear();

@ -232,7 +232,7 @@ private:
SingleInstance * m_singleInstance;
//! Original unix signal handlers are saved here
typedef map<int, struct sigaction*> SigHandlerMap;
typedef map<int, sighandler_t> SigHandlerMap;
SigHandlerMap m_originalSigHandlers;
#ifdef UNIT_TEST

Loading…
Cancel
Save