@@ -6113,34 +6113,11 @@ where
61136113 }
61146114 }
61156115
6116- /// Blocks until ChannelManager needs to be persisted or a timeout is reached. It returns a bool
6117- /// indicating whether persistence is necessary. Only one listener on
6118- /// [`await_persistable_update`], [`await_persistable_update_timeout`], or a future returned by
6119- /// [`get_persistable_update_future`] is guaranteed to be woken up.
6116+ /// Gets a [`Future`] that completes when this [`ChannelManager`] needs to be persisted.
61206117 ///
6121- /// Note that this method is not available with the `no-std` feature.
6118+ /// Note that callbacks registered on the [`Future`] MUST NOT call back into this
6119+ /// [`ChannelManager`] and should instead register actions to be taken later.
61226120 ///
6123- /// [`await_persistable_update`]: Self::await_persistable_update
6124- /// [`await_persistable_update_timeout`]: Self::await_persistable_update_timeout
6125- /// [`get_persistable_update_future`]: Self::get_persistable_update_future
6126- #[ cfg( any( test, feature = "std" ) ) ]
6127- pub fn await_persistable_update_timeout ( & self , max_wait : Duration ) -> bool {
6128- self . persistence_notifier . wait_timeout ( max_wait)
6129- }
6130-
6131- /// Blocks until ChannelManager needs to be persisted. Only one listener on
6132- /// [`await_persistable_update`], `await_persistable_update_timeout`, or a future returned by
6133- /// [`get_persistable_update_future`] is guaranteed to be woken up.
6134- ///
6135- /// [`await_persistable_update`]: Self::await_persistable_update
6136- /// [`get_persistable_update_future`]: Self::get_persistable_update_future
6137- pub fn await_persistable_update ( & self ) {
6138- self . persistence_notifier . wait ( )
6139- }
6140-
6141- /// Gets a [`Future`] that completes when a persistable update is available. Note that
6142- /// callbacks registered on the [`Future`] MUST NOT call back into this [`ChannelManager`] and
6143- /// should instead register actions to be taken later.
61446121 pub fn get_persistable_update_future ( & self ) -> Future {
61456122 self . persistence_notifier . get_future ( )
61466123 }
@@ -7899,9 +7876,9 @@ mod tests {
78997876
79007877 // All nodes start with a persistable update pending as `create_network` connects each node
79017878 // with all other nodes to make most tests simpler.
7902- assert ! ( nodes[ 0 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7903- assert ! ( nodes[ 1 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7904- assert ! ( nodes[ 2 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7879+ assert ! ( nodes[ 0 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
7880+ assert ! ( nodes[ 1 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
7881+ assert ! ( nodes[ 2 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
79057882
79067883 let mut chan = create_announced_chan_between_nodes ( & nodes, 0 , 1 ) ;
79077884
@@ -7915,28 +7892,28 @@ mod tests {
79157892 & nodes[ 0 ] . node . get_our_node_id ( ) ) . pop ( ) . unwrap ( ) ;
79167893
79177894 // The first two nodes (which opened a channel) should now require fresh persistence
7918- assert ! ( nodes[ 0 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7919- assert ! ( nodes[ 1 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7895+ assert ! ( nodes[ 0 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
7896+ assert ! ( nodes[ 1 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
79207897 // ... but the last node should not.
7921- assert ! ( !nodes[ 2 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7898+ assert ! ( !nodes[ 2 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
79227899 // After persisting the first two nodes they should no longer need fresh persistence.
7923- assert ! ( !nodes[ 0 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7924- assert ! ( !nodes[ 1 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7900+ assert ! ( !nodes[ 0 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
7901+ assert ! ( !nodes[ 1 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
79257902
79267903 // Node 3, unrelated to the only channel, shouldn't care if it receives a channel_update
79277904 // about the channel.
79287905 nodes[ 2 ] . node . handle_channel_update ( & nodes[ 1 ] . node . get_our_node_id ( ) , & chan. 0 ) ;
79297906 nodes[ 2 ] . node . handle_channel_update ( & nodes[ 1 ] . node . get_our_node_id ( ) , & chan. 1 ) ;
7930- assert ! ( !nodes[ 2 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7907+ assert ! ( !nodes[ 2 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
79317908
79327909 // The nodes which are a party to the channel should also ignore messages from unrelated
79337910 // parties.
79347911 nodes[ 0 ] . node . handle_channel_update ( & nodes[ 2 ] . node . get_our_node_id ( ) , & chan. 0 ) ;
79357912 nodes[ 0 ] . node . handle_channel_update ( & nodes[ 2 ] . node . get_our_node_id ( ) , & chan. 1 ) ;
79367913 nodes[ 1 ] . node . handle_channel_update ( & nodes[ 2 ] . node . get_our_node_id ( ) , & chan. 0 ) ;
79377914 nodes[ 1 ] . node . handle_channel_update ( & nodes[ 2 ] . node . get_our_node_id ( ) , & chan. 1 ) ;
7938- assert ! ( !nodes[ 0 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7939- assert ! ( !nodes[ 1 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7915+ assert ! ( !nodes[ 0 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
7916+ assert ! ( !nodes[ 1 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
79407917
79417918 // At this point the channel info given by peers should still be the same.
79427919 assert_eq ! ( nodes[ 0 ] . node. list_channels( ) [ 0 ] , node_a_chan_info) ;
@@ -7953,17 +7930,17 @@ mod tests {
79537930 // persisted and that its channel info remains the same.
79547931 nodes[ 0 ] . node . handle_channel_update ( & nodes[ 1 ] . node . get_our_node_id ( ) , & as_update) ;
79557932 nodes[ 1 ] . node . handle_channel_update ( & nodes[ 0 ] . node . get_our_node_id ( ) , & bs_update) ;
7956- assert ! ( !nodes[ 0 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7957- assert ! ( !nodes[ 1 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7933+ assert ! ( !nodes[ 0 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
7934+ assert ! ( !nodes[ 1 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
79587935 assert_eq ! ( nodes[ 0 ] . node. list_channels( ) [ 0 ] , node_a_chan_info) ;
79597936 assert_eq ! ( nodes[ 1 ] . node. list_channels( ) [ 0 ] , node_b_chan_info) ;
79607937
79617938 // Finally, deliver the other peers' message, ensuring each node needs to be persisted and
79627939 // the channel info has updated.
79637940 nodes[ 0 ] . node . handle_channel_update ( & nodes[ 1 ] . node . get_our_node_id ( ) , & bs_update) ;
79647941 nodes[ 1 ] . node . handle_channel_update ( & nodes[ 0 ] . node . get_our_node_id ( ) , & as_update) ;
7965- assert ! ( nodes[ 0 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7966- assert ! ( nodes[ 1 ] . node. await_persistable_update_timeout ( Duration :: from_millis( 1 ) ) ) ;
7942+ assert ! ( nodes[ 0 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
7943+ assert ! ( nodes[ 1 ] . node. get_persistable_update_future ( ) . wait_timeout ( Duration :: from_millis( 1 ) ) ) ;
79677944 assert_ne ! ( nodes[ 0 ] . node. list_channels( ) [ 0 ] , node_a_chan_info) ;
79687945 assert_ne ! ( nodes[ 1 ] . node. list_channels( ) [ 0 ] , node_b_chan_info) ;
79697946 }
0 commit comments