@@ -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
210210impl 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