Browse Source

fix(mgb/imperative): fix the future_error caused by repeat get calls at the same std::future

GitOrigin-RevId: f1a835fa5c
release-1.11.1
Megvii Engine Team 2 years ago
parent
commit
eb512b62c5
1 changed files with 2 additions and 8 deletions
  1. +2
    -8
      imperative/src/impl/persistent_cache.cpp

+ 2
- 8
imperative/src/impl/persistent_cache.cpp View File

@@ -68,18 +68,12 @@ public:
encode(category + '@' + key_str, redis_key_str, 24); encode(category + '@' + key_str, redis_key_str, 24);
auto result = m_client.get(m_prefix + redis_key_str); auto result = m_client.get(m_prefix + redis_key_str);
sync(); sync();
decltype(result.get()) content;
int try_number = 3;
for (int i = 0; i < try_number; i++) {
content = result.get();
if (!content.is_null()) {
break;
}
}
auto content = result.get();
if (content.is_null()) { if (content.is_null()) {
return None; return None;
} }
std::string decode_content; std::string decode_content;
mgb_assert(content.is_string());
decode(content.as_string(), decode_content); decode(content.as_string(), decode_content);
m_local->put(category, key, {decode_content.data(), decode_content.length()}); m_local->put(category, key, {decode_content.data(), decode_content.length()});
return m_local->get(category, key); return m_local->get(category, key);


Loading…
Cancel
Save