systemc: Detect a process control corner case and report an error.
This error reporting results in an exception being thrown, and one (or more) of the tests depend on that behavior. Change-Id: I858aa14fbb80b0648392179a6a8d2055c91aedf8 Reviewed-on: https://gem5-review.googlesource.com/12050 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -178,6 +178,14 @@ Process::disable(bool inc_kids)
|
||||
if (inc_kids)
|
||||
forEachKid([](Process *p) { p->disable(true); });
|
||||
|
||||
if (!::sc_core::sc_allow_process_control_corners &&
|
||||
dynamic_cast<SensitivityTimeout *>(dynamicSensitivity)) {
|
||||
std::string message("attempt to disable a thread with timeout wait: ");
|
||||
message += name();
|
||||
SC_REPORT_ERROR("Undefined process control interaction",
|
||||
message.c_str());
|
||||
}
|
||||
|
||||
_disabled = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user