51a52
> #include <unordered_map>
70c71
< extern std::stack<Addr> locked_addrs;
---
> extern std::unordered_map<int, std::stack<Addr>> locked_addrs;
75c76,78
< if (locked_addrs.empty())
---
> std::stack<Addr>& locked_addr_stack = locked_addrs[xc->contextId()];
>
> if (locked_addr_stack.empty())
79,80c82,83
< if ((locked_addrs.top() & cacheBlockMask) == snoop_addr)
< locked_addrs.pop();
---
> if ((locked_addr_stack.top() & cacheBlockMask) == snoop_addr)
> locked_addr_stack.pop();
87c90,92
< locked_addrs.push(req->getPaddr() & ~0xF);
---
> std::stack<Addr>& locked_addr_stack = locked_addrs[xc->contextId()];
>
> locked_addr_stack.push(req->getPaddr() & ~0xF);
98a104,105
> std::stack<Addr>& locked_addr_stack = locked_addrs[xc->contextId()];
>
105,106c112,113
< locked_addrs.empty() ? "yes" : "no");
< if (!locked_addrs.empty()) {
---
> locked_addr_stack.empty() ? "yes" : "no");
> if (!locked_addr_stack.empty()) {
110c117
< locked_addrs.top());
---
> locked_addr_stack.top());
112,113c119,120
< if (locked_addrs.empty()
< || locked_addrs.top() != ((req->getPaddr() & ~0xF))) {
---
> if (locked_addr_stack.empty()
> || locked_addr_stack.top() != ((req->getPaddr() & ~0xF))) {