summaryrefslogtreecommitdiff
path: root/src/sim/init_signals.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim/init_signals.cc')
-rw-r--r--src/sim/init_signals.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/sim/init_signals.cc b/src/sim/init_signals.cc
index 705a154e8..0e898954e 100644
--- a/src/sim/init_signals.cc
+++ b/src/sim/init_signals.cc
@@ -48,6 +48,7 @@
#include "base/cprintf.hh"
#include "sim/async.hh"
#include "sim/core.hh"
+#include "sim/eventq.hh"
#include "sim/init_signals.hh"
using namespace std;
@@ -58,6 +59,8 @@ dumpStatsHandler(int sigtype)
{
async_event = true;
async_statdump = true;
+ /* Wake up some event queue to handle event */
+ getEventQueue(0)->wakeup();
}
void
@@ -66,6 +69,8 @@ dumprstStatsHandler(int sigtype)
async_event = true;
async_statdump = true;
async_statreset = true;
+ /* Wake up some event queue to handle event */
+ getEventQueue(0)->wakeup();
}
/// Exit signal handler.
@@ -74,6 +79,8 @@ exitNowHandler(int sigtype)
{
async_event = true;
async_exit = true;
+ /* Wake up some event queue to handle event */
+ getEventQueue(0)->wakeup();
}
/// Abort signal handler.
@@ -89,6 +96,8 @@ ioHandler(int sigtype)
{
async_event = true;
async_io = true;
+ /* Wake up some event queue to handle event */
+ getEventQueue(0)->wakeup();
}
static void