| | |
| | | info.on_expire_(info.data_); |
| | | } |
| | | if (info.data_.index() == 0) { |
| | | boost::variant2::get<0>(info.data_).Release(mq.shm()); |
| | | boost::variant2::get<0>(info.data_).Release(); |
| | | } |
| | | } |
| | | |
| | |
| | | auto &msg = boost::variant2::get<0>(pos->data().data_); |
| | | r = mq.TrySend(*(MQId *) remote.data(), msg); |
| | | if (r) { |
| | | msg.Release(mq.shm()); |
| | | msg.Release(); |
| | | } |
| | | } else { |
| | | auto &content = boost::variant2::get<1>(pos->data().data_); |
| | | MsgI msg; |
| | | if (msg.Make(mq.shm(), content)) { |
| | | DEFER1(msg.Release(mq.shm());); |
| | | if (msg.Make(content)) { |
| | | DEFER1(msg.Release();); |
| | | r = mq.TrySend(*(MQId *) remote.data(), msg); |
| | | } |
| | | } |