提交 15323da2 编写于 作者: N Niu Chong 提交者: Jinhui Yuan

fix(actor.cpp): fix the bug that return wrong consumed ctrl Regst in...

fix(actor.cpp): fix the bug that return wrong consumed ctrl Regst in AsyncSendCtrlRegstMsg() (#1031)
上级 508a3507
......@@ -450,19 +450,17 @@ int Actor::ProcessReadableCtrlRegstMsg(const ActorMsg& msg) {
void Actor::AsyncSendCtrlRegstMsg() {
for (auto& pair : consumed_ctrl_regst_) {
CHECK(!pair.second.empty());
Regst* regst = pair.second.front();
int32_t returned_regst_num =
regst->regst_desc()->regst_desc_type().ctrl_regst_desc().returned_regst_num();
pair.second.front()->regst_desc()->regst_desc_type().ctrl_regst_desc().returned_regst_num();
CHECK_GE(returned_regst_num, 1);
if (!pair.second.empty()) {
CHECK_GE(pair.second.size(), returned_regst_num);
while (returned_regst_num--) {
AsyncSendMsg(
ActorMsg::BuildRegstMsgToProducer(actor_id_, regst->producer_actor_id(), regst));
pair.second.pop_front();
}
if (pair.second.empty()) { --readable_ctrl_regst_desc_cnt_; }
CHECK_GE(pair.second.size(), returned_regst_num);
while (returned_regst_num--) {
Regst* regst = pair.second.front();
AsyncSendMsg(ActorMsg::BuildRegstMsgToProducer(actor_id_, regst->producer_actor_id(), regst));
pair.second.pop_front();
}
if (pair.second.empty()) { --readable_ctrl_regst_desc_cnt_; }
}
for (auto& pair : writeable_produced_ctrl_regst_) {
CHECK(!pair.second.empty());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册