summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/systemc/core/sc_process_handle.cc10
-rw-r--r--src/systemc/ext/core/sc_process_handle.hh1
2 files changed, 7 insertions, 4 deletions
diff --git a/src/systemc/core/sc_process_handle.cc b/src/systemc/core/sc_process_handle.cc
index e0f6a8186..256d64989 100644
--- a/src/systemc/core/sc_process_handle.cc
+++ b/src/systemc/core/sc_process_handle.cc
@@ -39,17 +39,19 @@ namespace sc_core
const char *
sc_unwind_exception::what() const throw()
{
- panic("%s for base class called.\n", __PRETTY_FUNCTION__);
+ return _isReset ? "RESET" : "KILL";
}
bool
sc_unwind_exception::is_reset() const
{
- panic("%s for base class called.\n", __PRETTY_FUNCTION__);
+ return _isReset;
}
-sc_unwind_exception::sc_unwind_exception() {}
-sc_unwind_exception::sc_unwind_exception(const sc_unwind_exception &) {}
+sc_unwind_exception::sc_unwind_exception() : _isReset(false) {}
+sc_unwind_exception::sc_unwind_exception(const sc_unwind_exception &e) :
+ _isReset(e._isReset)
+{}
sc_unwind_exception::~sc_unwind_exception() throw() {}
diff --git a/src/systemc/ext/core/sc_process_handle.hh b/src/systemc/ext/core/sc_process_handle.hh
index 2db553b7a..818690318 100644
--- a/src/systemc/ext/core/sc_process_handle.hh
+++ b/src/systemc/ext/core/sc_process_handle.hh
@@ -108,6 +108,7 @@ class sc_unwind_exception : public std::exception
virtual ~sc_unwind_exception() throw();
protected:
+ bool _isReset;
sc_unwind_exception();
};