diff --git a/src/sim/sim_events.cc b/src/sim/sim_events.cc
index 23da8fd..f9237e4 100644
--- a/src/sim/sim_events.cc
+++ b/src/sim/sim_events.cc
@@ -62,6 +62,13 @@
 {
 }
 
+GlobalSimLoopExitEvent::GlobalSimLoopExitEvent(const std::string &_cause,
+                                               int c, Tick r)
+    : GlobalEvent(curTick(), Minimum_Pri, IsExitEvent),
+      cause(_cause), code(c), repeat(r)
+{
+}
+
 const char *
 GlobalSimLoopExitEvent::description() const
 {
@@ -90,6 +97,13 @@
     new GlobalSimLoopExitEvent(when + simQuantum, message, exit_code, repeat);
 }
 
+void
+exitSimLoopNow(const std::string &message, int exit_code, Tick repeat,
+               bool serialize)
+{
+    new GlobalSimLoopExitEvent(message, exit_code, repeat);
+}
+
 LocalSimLoopExitEvent::LocalSimLoopExitEvent(const std::string &_cause, int c,
                                    Tick r)
     : Event(Sim_Exit_Pri, IsExitEvent),
diff --git a/src/sim/sim_events.hh b/src/sim/sim_events.hh
index 6343071..8a45552 100644
--- a/src/sim/sim_events.hh
+++ b/src/sim/sim_events.hh
@@ -60,10 +60,9 @@
     Tick repeat;
 
   public:
-    // non-scheduling version for createForUnserialize()
-    GlobalSimLoopExitEvent();
     GlobalSimLoopExitEvent(Tick when, const std::string &_cause, int c,
                            Tick repeat = 0);
+    GlobalSimLoopExitEvent(const std::string &_cause, int c, Tick repeat = 0);
 
     const std::string getCause() const { return cause; }
     int getCode() const { return code; }
@@ -94,8 +93,6 @@
 
     void serialize(CheckpointOut &cp) const override;
     void unserialize(CheckpointIn &cp) override;
-    static Serializable *createForUnserialize(CheckpointIn &cp,
-                                              const std::string &section);
 };
 
 //
diff --git a/src/sim/sim_exit.hh b/src/sim/sim_exit.hh
index 55db55f..0a46346 100644
--- a/src/sim/sim_exit.hh
+++ b/src/sim/sim_exit.hh
@@ -52,5 +52,9 @@
 void exitSimLoop(const std::string &message, int exit_code = 0,
                  Tick when = curTick(), Tick repeat = 0,
                  bool serialize = false);
+/// Schedule an event as above, but make it high priority so it runs before
+/// any normal events which are schedule at the current time.
+void exitSimLoopNow(const std::string &message, int exit_code = 0,
+                    Tick repeat = 0, bool serialize = false);
 
 #endif // __SIM_EXIT_HH__
