@@ -136,7 +136,7 @@ pub(crate) struct EventQueue<K: Deref>
136136where
137137 K :: Target : KVStorePersister ,
138138{
139- queue : Mutex < VecDeque < Arc < Event > > > ,
139+ queue : Mutex < VecDeque < Event > > ,
140140 notifier : Condvar ,
141141 persister : K ,
142142}
@@ -146,26 +146,26 @@ where
146146 K :: Target : KVStorePersister ,
147147{
148148 pub ( crate ) fn new ( persister : K ) -> Self {
149- let queue: Mutex < VecDeque < Arc < Event > > > = Mutex :: new ( VecDeque :: new ( ) ) ;
149+ let queue: Mutex < VecDeque < Event > > = Mutex :: new ( VecDeque :: new ( ) ) ;
150150 let notifier = Condvar :: new ( ) ;
151151 Self { queue, notifier, persister }
152152 }
153153
154154 pub ( crate ) fn add_event ( & self , event : Event ) -> Result < ( ) , Error > {
155155 {
156156 let mut locked_queue = self . queue . lock ( ) . unwrap ( ) ;
157- locked_queue. push_back ( Arc :: new ( event) ) ;
157+ locked_queue. push_back ( event) ;
158158 self . persist_queue ( & * locked_queue) ?;
159159 }
160160
161161 self . notifier . notify_one ( ) ;
162162 Ok ( ( ) )
163163 }
164164
165- pub ( crate ) fn next_event ( & self ) -> Arc < Event > {
165+ pub ( crate ) fn next_event ( & self ) -> Event {
166166 let locked_queue =
167167 self . notifier . wait_while ( self . queue . lock ( ) . unwrap ( ) , |queue| queue. is_empty ( ) ) . unwrap ( ) ;
168- Arc :: clone ( & locked_queue. front ( ) . unwrap ( ) )
168+ locked_queue. front ( ) . unwrap ( ) . clone ( )
169169 }
170170
171171 pub ( crate ) fn event_handled ( & self ) -> Result < ( ) , Error > {
@@ -178,7 +178,7 @@ where
178178 Ok ( ( ) )
179179 }
180180
181- fn persist_queue ( & self , locked_queue : & VecDeque < Arc < Event > > ) -> Result < ( ) , Error > {
181+ fn persist_queue ( & self , locked_queue : & VecDeque < Event > ) -> Result < ( ) , Error > {
182182 self . persister
183183 . persist ( EVENTS_PERSISTENCE_KEY , & EventQueueSerWrapper ( locked_queue) )
184184 . map_err ( |_| Error :: PersistenceFailed ) ?;
@@ -195,13 +195,13 @@ where
195195 reader : & mut R , persister : K ,
196196 ) -> Result < Self , lightning:: ln:: msgs:: DecodeError > {
197197 let read_queue: EventQueueDeserWrapper = Readable :: read ( reader) ?;
198- let queue: Mutex < VecDeque < Arc < Event > > > = Mutex :: new ( read_queue. 0 ) ;
198+ let queue: Mutex < VecDeque < Event > > = Mutex :: new ( read_queue. 0 ) ;
199199 let notifier = Condvar :: new ( ) ;
200200 Ok ( Self { queue, notifier, persister } )
201201 }
202202}
203203
204- struct EventQueueDeserWrapper ( VecDeque < Arc < Event > > ) ;
204+ struct EventQueueDeserWrapper ( VecDeque < Event > ) ;
205205
206206impl Readable for EventQueueDeserWrapper {
207207 fn read < R : lightning:: io:: Read > (
@@ -210,13 +210,13 @@ impl Readable for EventQueueDeserWrapper {
210210 let len: u16 = Readable :: read ( reader) ?;
211211 let mut queue = VecDeque :: with_capacity ( len as usize ) ;
212212 for _ in 0 ..len {
213- queue. push_back ( Arc :: new ( Readable :: read ( reader) ?) ) ;
213+ queue. push_back ( Readable :: read ( reader) ?) ;
214214 }
215215 Ok ( Self ( queue) )
216216 }
217217}
218218
219- struct EventQueueSerWrapper < ' a > ( & ' a VecDeque < Arc < Event > > ) ;
219+ struct EventQueueSerWrapper < ' a > ( & ' a VecDeque < Event > ) ;
220220
221221impl Writeable for EventQueueSerWrapper < ' _ > {
222222 fn write < W : Writer > ( & self , writer : & mut W ) -> Result < ( ) , lightning:: io:: Error > {
@@ -594,7 +594,7 @@ mod tests {
594594
595595 // Check we get the expected event and that it is returned until we mark it handled.
596596 for _ in 0 ..5 {
597- assert_eq ! ( * event_queue. next_event( ) , expected_event) ;
597+ assert_eq ! ( event_queue. next_event( ) , expected_event) ;
598598 assert_eq ! ( false , test_persister. get_and_clear_pending_persist( ) ) ;
599599 }
600600
0 commit comments