Skip to content

Commit 848ee9a

Browse files
committed
Generate witness only for last window
1 parent 1da2344 commit 848ee9a

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/common/trace.cpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,22 @@ class Trace {
6262
friend struct TraceHash;
6363

6464
Trace appendEvent(std::vector<Event> &allEvents, EventIndex idx,
65-
std::unordered_map<EventIndex, EventIndex> &po) {
65+
std::unordered_map<EventIndex, EventIndex> &po,
66+
bool isLastWindow) {
6667
Trace t(*this);
67-
t.prevMmap = t.mmap;
68-
t.prevEvents = t.events;
68+
if (isLastWindow) {
69+
t.prevMmap = t.mmap;
70+
t.prevEvents = t.events;
71+
}
6972

7073
t.events.erase(idx);
7174

7275
if (po.find(idx) != po.end())
7376
t.events.insert(po[idx]);
7477

7578
Event &event = allEvents[idx];
76-
t.curr = event;
79+
if (isLastWindow)
80+
t.curr = event;
7781

7882
switch (event.getEventType()) {
7983
case EventType::Acquire:

src/consistency_checker/verify_sc.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ bool verify_sc(std::vector<Event> &allEvents,
100100
}
101101

102102
for (auto i : reordering.getExecutableEvents(allEvents, goodWrites)) {
103-
Trace nextReordering = reordering.appendEvent(allEvents, i, po);
103+
Trace nextReordering =
104+
reordering.appendEvent(allEvents, i, po, isLastWindow);
104105
if (seen.find(nextReordering) == seen.end()) {
105106
stack.push(nextReordering);
106107
seen.insert(nextReordering);

0 commit comments

Comments
 (0)