Skip to content

Commit a45eb9e

Browse files
committed
f Store and return Arc<Event>
1 parent 1566dcb commit a45eb9e

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/event.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -167,20 +167,20 @@ impl<K: KVStorePersister> LdkLiteEventQueue<K> {
167167
pub(crate) fn add_event(&self, event: LdkLiteEvent) -> Result<(), Error> {
168168
{
169169
let mut locked_queue = self.queue.lock().unwrap();
170-
locked_queue.0.push_back(event);
170+
locked_queue.0.push_back(Arc::new(event));
171171
self.persister.persist(EVENTS_PERSISTENCE_KEY, &*locked_queue)?;
172172
}
173173

174174
self.notifier.notify_one();
175175
Ok(())
176176
}
177177

178-
pub(crate) fn next_event(&self) -> LdkLiteEvent {
178+
pub(crate) fn next_event(&self) -> Arc<LdkLiteEvent> {
179179
let locked_queue = self
180180
.notifier
181181
.wait_while(self.queue.lock().unwrap(), |queue| queue.0.is_empty())
182182
.unwrap();
183-
locked_queue.0.front().unwrap().clone()
183+
Arc::clone(&locked_queue.0.front().unwrap())
184184
}
185185

186186
pub(crate) fn event_handled(&self) -> Result<(), Error> {
@@ -205,7 +205,7 @@ impl<K: KVStorePersister> ReadableArgs<Arc<K>> for LdkLiteEventQueue<K> {
205205
}
206206
}
207207

208-
struct EventQueueSerWrapper(VecDeque<LdkLiteEvent>);
208+
struct EventQueueSerWrapper(VecDeque<Arc<LdkLiteEvent>>);
209209

210210
impl Readable for EventQueueSerWrapper {
211211
fn read<R: lightning::io::Read>(
@@ -214,7 +214,7 @@ impl Readable for EventQueueSerWrapper {
214214
let len: u16 = Readable::read(reader)?;
215215
let mut queue = VecDeque::with_capacity(len as usize);
216216
for _ in 0..len {
217-
queue.push_back(Readable::read(reader)?);
217+
queue.push_back(Arc::new(Readable::read(reader)?));
218218
}
219219
Ok(EventQueueSerWrapper(queue))
220220
}

0 commit comments

Comments
 (0)