bank_base unbalance keepalive

This commit is contained in:
xbzk 2026-04-09 23:06:10 -03:00
parent 7b393be047
commit 46f7ed6256

View file

@ -8,6 +8,7 @@
#include <utility>
#include "common/common_types.h"
#include "common/logging.h"
namespace VideoCommon {
@ -46,8 +47,13 @@ public:
}
void CloseReference(size_t how_many = 1) {
if (how_many > references.load(std::memory_order_relaxed)) {
UNREACHABLE();
const size_t prev = references.load(std::memory_order_relaxed);
if (how_many > prev) [[unlikely]] {
LOG_CRITICAL(HW_GPU,
"QueryBank CloseReference underflow keepalive: prev={} how_many={}",
prev, how_many);
references.store(0, std::memory_order_relaxed);
return;
}
references.fetch_sub(how_many, std::memory_order_relaxed);
}