🐛 concurrent del user & adding log entry would allow a ghost log to be made

This commit is contained in:
EntireTwix 2021-04-21 21:42:30 -07:00
parent 7d38974ba0
commit 417f52253b

View file

@ -128,18 +128,22 @@ public:
Transaction temp(a_name, b_name, amount);
Transaction temp2(a_name, b_name, amount);
users.if_contains(a_name, [&temp, &a_name](const User &u) {
if (logs.try_emplace_l(a_name, [&temp](Log &l) { l.AddTrans(std::move(temp)); }))
{
logs.modify_if(a_name, [&temp](Log &l) {
l.AddTrans(std::move(temp));
});
}
});
users.if_contains(a_name, [&temp, &a_name](const User &u) {
if (logs.try_emplace_l(b_name, [&temp2](Log &l) { l.AddTrans(std::move(temp2)); }))
{
logs.modify_if(b_name, [&temp2](Log &l) {
l.AddTrans(std::move(temp2));
});
}
});
}
return state;