Skip to content

Commit 176fe5c

Browse files
author
Devdutt Shenoi
committed
fix: don't remove slots, just take contents
1 parent bc8de88 commit 176fe5c

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

rumqttc/src/state.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,15 @@ impl MqttState {
111111

112112
for publish in second_half.iter_mut().chain(first_half) {
113113
if let Some(publish) = publish.take() {
114-
let tx = self.ack_waiter.remove(publish.pkid as usize);
114+
let tx = self.ack_waiter[publish.pkid as usize].take();
115115
let request = Request::Publish(publish);
116116
pending.push((request, tx));
117117
}
118118
}
119119

120120
// remove and collect pending releases
121121
for pkid in self.outgoing_rel.ones() {
122-
let tx = self.ack_waiter.remove(pkid);
122+
let tx = self.ack_waiter[pkid].take();
123123
let request = Request::PubRel(PubRel::new(pkid as u16));
124124
pending.push((request, tx));
125125
}
@@ -238,7 +238,7 @@ impl MqttState {
238238
return Err(StateError::Unsolicited(puback.pkid));
239239
}
240240

241-
if let Some(tx) = self.ack_waiter.remove(puback.pkid as usize) {
241+
if let Some(tx) = self.ack_waiter[puback.pkid as usize].take() {
242242
// Resolve promise for QoS 1
243243
tx.resolve();
244244
}
@@ -300,7 +300,7 @@ impl MqttState {
300300
return Err(StateError::Unsolicited(pubcomp.pkid));
301301
}
302302

303-
if let Some(tx) = self.ack_waiter.remove(pubcomp.pkid as usize) {
303+
if let Some(tx) = self.ack_waiter[pubcomp.pkid as usize].take() {
304304
// Resolve promise for QoS 2
305305
tx.resolve();
306306
}

0 commit comments

Comments
 (0)