@@ -9,7 +9,7 @@ use core::future::Future;
99use core:: task:: { Poll , Waker } ;
1010use std:: collections:: VecDeque ;
1111use std:: ops:: Deref ;
12- use std:: sync:: { Arc , Condvar , Mutex } ;
12+ use std:: sync:: { Arc , Mutex } ;
1313
1414use bitcoin:: blockdata:: locktime:: absolute:: LockTime ;
1515use bitcoin:: secp256k1:: PublicKey ;
@@ -287,7 +287,6 @@ where
287287{
288288 queue : Arc < Mutex < VecDeque < Event > > > ,
289289 waker : Arc < Mutex < Option < Waker > > > ,
290- notifier : Condvar ,
291290 kv_store : Arc < DynStore > ,
292291 logger : L ,
293292}
@@ -299,8 +298,7 @@ where
299298 pub ( crate ) fn new ( kv_store : Arc < DynStore > , logger : L ) -> Self {
300299 let queue = Arc :: new ( Mutex :: new ( VecDeque :: new ( ) ) ) ;
301300 let waker = Arc :: new ( Mutex :: new ( None ) ) ;
302- let notifier = Condvar :: new ( ) ;
303- Self { queue, waker, notifier, kv_store, logger }
301+ Self { queue, waker, kv_store, logger }
304302 }
305303
306304 pub ( crate ) fn add_event ( & self , event : Event ) -> Result < ( ) , Error > {
@@ -310,8 +308,6 @@ where
310308 self . persist_queue ( & locked_queue) ?;
311309 }
312310
313- self . notifier . notify_one ( ) ;
314-
315311 if let Some ( waker) = self . waker . lock ( ) . unwrap ( ) . take ( ) {
316312 waker. wake ( ) ;
317313 }
@@ -327,19 +323,12 @@ where
327323 EventFuture { event_queue : Arc :: clone ( & self . queue ) , waker : Arc :: clone ( & self . waker ) } . await
328324 }
329325
330- pub ( crate ) fn wait_next_event ( & self ) -> Event {
331- let locked_queue =
332- self . notifier . wait_while ( self . queue . lock ( ) . unwrap ( ) , |queue| queue. is_empty ( ) ) . unwrap ( ) ;
333- locked_queue. front ( ) . unwrap ( ) . clone ( )
334- }
335-
336326 pub ( crate ) fn event_handled ( & self ) -> Result < ( ) , Error > {
337327 {
338328 let mut locked_queue = self . queue . lock ( ) . unwrap ( ) ;
339329 locked_queue. pop_front ( ) ;
340330 self . persist_queue ( & locked_queue) ?;
341331 }
342- self . notifier . notify_one ( ) ;
343332
344333 if let Some ( waker) = self . waker . lock ( ) . unwrap ( ) . take ( ) {
345334 waker. wake ( ) ;
@@ -383,8 +372,7 @@ where
383372 let read_queue: EventQueueDeserWrapper = Readable :: read ( reader) ?;
384373 let queue = Arc :: new ( Mutex :: new ( read_queue. 0 ) ) ;
385374 let waker = Arc :: new ( Mutex :: new ( None ) ) ;
386- let notifier = Condvar :: new ( ) ;
387- Ok ( Self { queue, waker, notifier, kv_store, logger } )
375+ Ok ( Self { queue, waker, kv_store, logger } )
388376 }
389377}
390378
@@ -1637,7 +1625,6 @@ mod tests {
16371625
16381626 // Check we get the expected event and that it is returned until we mark it handled.
16391627 for _ in 0 ..5 {
1640- assert_eq ! ( event_queue. wait_next_event( ) , expected_event) ;
16411628 assert_eq ! ( event_queue. next_event_async( ) . await , expected_event) ;
16421629 assert_eq ! ( event_queue. next_event( ) , Some ( expected_event. clone( ) ) ) ;
16431630 }
@@ -1652,7 +1639,7 @@ mod tests {
16521639 . unwrap ( ) ;
16531640 let deser_event_queue =
16541641 EventQueue :: read ( & mut & persisted_bytes[ ..] , ( Arc :: clone ( & store) , logger) ) . unwrap ( ) ;
1655- assert_eq ! ( deser_event_queue. wait_next_event ( ) , expected_event) ;
1642+ assert_eq ! ( deser_event_queue. next_event_async ( ) . await , expected_event) ;
16561643
16571644 event_queue. event_handled ( ) . unwrap ( ) ;
16581645 assert_eq ! ( event_queue. next_event( ) , None ) ;
@@ -1721,32 +1708,5 @@ mod tests {
17211708 }
17221709 }
17231710 assert_eq ! ( event_queue. next_event( ) , None ) ;
1724-
1725- // Check we operate correctly, even when mixing and matching blocking and async API calls.
1726- let ( tx, mut rx) = tokio:: sync:: watch:: channel ( ( ) ) ;
1727- let thread_queue = Arc :: clone ( & event_queue) ;
1728- let thread_event = expected_event. clone ( ) ;
1729- std:: thread:: spawn ( move || {
1730- let e = thread_queue. wait_next_event ( ) ;
1731- assert_eq ! ( e, thread_event) ;
1732- thread_queue. event_handled ( ) . unwrap ( ) ;
1733- tx. send ( ( ) ) . unwrap ( ) ;
1734- } ) ;
1735-
1736- let thread_queue = Arc :: clone ( & event_queue) ;
1737- let thread_event = expected_event. clone ( ) ;
1738- std:: thread:: spawn ( move || {
1739- // Sleep a bit before we enqueue the events everybody is waiting for.
1740- std:: thread:: sleep ( Duration :: from_millis ( 20 ) ) ;
1741- thread_queue. add_event ( thread_event. clone ( ) ) . unwrap ( ) ;
1742- thread_queue. add_event ( thread_event. clone ( ) ) . unwrap ( ) ;
1743- } ) ;
1744-
1745- let e = event_queue. next_event_async ( ) . await ;
1746- assert_eq ! ( e, expected_event. clone( ) ) ;
1747- event_queue. event_handled ( ) . unwrap ( ) ;
1748-
1749- rx. changed ( ) . await . unwrap ( ) ;
1750- assert_eq ! ( event_queue. next_event( ) , None ) ;
17511711 }
17521712}
0 commit comments