https://github.com/dmlc/ps-lite/blob/master/include/ps/kv_app.h#L689
template <typename Val>
template <typename C, typename D>
int KVWorker<Val>::AddPullCB(
const SArray<Key>& keys, C* vals, D* lens, int cmd,
const Callback& cb) {
int ts = obj_->NewRequest(kServerGroup);
AddCallback(ts, [this, ts, keys, vals, lens, cb]() mutable {
...
if (vals->empty()) {
vals->resize(total_val);
} else {
CHECK_EQ(vals->size(), total_val); // here
}
...
});
return ts;
}
IMO, vals is the buffer to store pull results. So it does not have to be equal to total_val. Greater size should also be allowed. So I propose changing to CHECK_GE(vals->size(), total_val);.
https://github.com/dmlc/ps-lite/blob/master/include/ps/kv_app.h#L689
IMO,
valsis the buffer to store pull results. So it does not have to be equal tototal_val. Greater size should also be allowed. So I propose changing toCHECK_GE(vals->size(), total_val);.