summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-09-10 17:23:22 -0700
committerGabe Black <gabeblack@google.com>2018-10-09 21:44:34 +0000
commite4ab67f7176b3c11536698014c98681d3d36131b (patch)
treea9d54e0614d5a53aee2e8e697b7fef7a34088091
parent110907bae1699e61455334bab40c161ddfc4141d (diff)
downloadgem5-e4ab67f7176b3c11536698014c98681d3d36131b.tar.xz
systemc: Track event sensitivities with a list instead of a set.
It's totally legal to signal that an event happened to waiting processes in any order we choose, but to match the order of events which appears in the Accellera test golden output, we need to do things in the order they did. This is less efficient, but will reduce the number of false positives. Change-Id: Ie2882249ae846991d627f5f688a9e89e629bb300 Reviewed-on: https://gem5-review.googlesource.com/c/12612 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
-rw-r--r--src/systemc/core/event.hh8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/systemc/core/event.hh b/src/systemc/core/event.hh
index 57d3f3f6f..c39053be8 100644
--- a/src/systemc/core/event.hh
+++ b/src/systemc/core/event.hh
@@ -30,7 +30,7 @@
#ifndef __SYSTEMC_CORE_EVENT_HH__
#define __SYSTEMC_CORE_EVENT_HH__
-#include <set>
+#include <list>
#include <string>
#include <vector>
@@ -93,8 +93,8 @@ class Event
return e->_gem5_event;
}
- void addSensitivity(Sensitivity *s) const { sensitivities.insert(s); }
- void delSensitivity(Sensitivity *s) const { sensitivities.erase(s); }
+ void addSensitivity(Sensitivity *s) const { sensitivities.push_back(s); }
+ void delSensitivity(Sensitivity *s) const { sensitivities.remove(s); }
private:
sc_core::sc_event *_sc_event;
@@ -107,7 +107,7 @@ class Event
ScEvent delayedNotify;
- mutable std::set<Sensitivity *> sensitivities;
+ mutable std::list<Sensitivity *> sensitivities;
};
extern Events topLevelEvents;