1
1
use crate :: {
2
- hex_utils, ChannelManager , Config , Error , NetworkGraph , PaymentInfo , PaymentInfoStorage ,
3
- PaymentStatus , Wallet ,
2
+ hex_utils, ChannelId , ChannelManager , Config , Error , NetworkGraph , PaymentInfo , PaymentInfoStorage ,
3
+ PaymentStatus , Wallet , UserChannelId ,
4
4
} ;
5
5
6
6
use crate :: logger:: { log_error, log_given_level, log_info, log_internal, Logger } ;
@@ -50,16 +50,16 @@ pub enum Event {
50
50
/// A channel is ready to be used.
51
51
ChannelReady {
52
52
/// The `channel_id` of the channel.
53
- channel_id : [ u8 ; 32 ] ,
53
+ channel_id : ChannelId ,
54
54
/// The `user_channel_id` of the channel.
55
- user_channel_id : u128 ,
55
+ user_channel_id : UserChannelId ,
56
56
} ,
57
57
/// A channel has been closed.
58
58
ChannelClosed {
59
59
/// The `channel_id` of the channel.
60
- channel_id : [ u8 ; 32 ] ,
60
+ channel_id : ChannelId ,
61
61
/// The `user_channel_id` of the channel.
62
- user_channel_id : u128 ,
62
+ user_channel_id : UserChannelId ,
63
63
} ,
64
64
}
65
65
@@ -83,13 +83,13 @@ impl Readable for Event {
83
83
Ok ( Self :: PaymentReceived { payment_hash, amount_msat } )
84
84
}
85
85
3u8 => {
86
- let channel_id: [ u8 ; 32 ] = Readable :: read ( reader) ?;
87
- let user_channel_id: u128 = Readable :: read ( reader) ?;
86
+ let channel_id = ChannelId ( Readable :: read ( reader) ?) ;
87
+ let user_channel_id = UserChannelId ( Readable :: read ( reader) ?) ;
88
88
Ok ( Self :: ChannelReady { channel_id, user_channel_id } )
89
89
}
90
90
4u8 => {
91
- let channel_id: [ u8 ; 32 ] = Readable :: read ( reader) ?;
92
- let user_channel_id: u128 = Readable :: read ( reader) ?;
91
+ let channel_id = ChannelId ( Readable :: read ( reader) ?) ;
92
+ let user_channel_id = UserChannelId ( Readable :: read ( reader) ?) ;
93
93
Ok ( Self :: ChannelClosed { channel_id, user_channel_id } )
94
94
}
95
95
_ => Err ( lightning:: ln:: msgs:: DecodeError :: InvalidValue ) ,
@@ -118,14 +118,14 @@ impl Writeable for Event {
118
118
}
119
119
Self :: ChannelReady { channel_id, user_channel_id } => {
120
120
3u8 . write ( writer) ?;
121
- channel_id. write ( writer) ?;
122
- user_channel_id. write ( writer) ?;
121
+ channel_id. 0 . write ( writer) ?;
122
+ user_channel_id. 0 . write ( writer) ?;
123
123
Ok ( ( ) )
124
124
}
125
125
Self :: ChannelClosed { channel_id, user_channel_id } => {
126
126
4u8 . write ( writer) ?;
127
- channel_id. write ( writer) ?;
128
- user_channel_id. write ( writer) ?;
127
+ channel_id. 0 . write ( writer) ?;
128
+ user_channel_id. 0 . write ( writer) ?;
129
129
Ok ( ( ) )
130
130
}
131
131
}
@@ -136,7 +136,7 @@ pub(crate) struct EventQueue<K: Deref>
136
136
where
137
137
K :: Target : KVStorePersister ,
138
138
{
139
- queue : Mutex < VecDeque < Arc < Event > > > ,
139
+ queue : Mutex < VecDeque < Event > > ,
140
140
notifier : Condvar ,
141
141
persister : K ,
142
142
}
@@ -146,26 +146,26 @@ where
146
146
K :: Target : KVStorePersister ,
147
147
{
148
148
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 ( ) ) ;
150
150
let notifier = Condvar :: new ( ) ;
151
151
Self { queue, notifier, persister }
152
152
}
153
153
154
154
pub ( crate ) fn add_event ( & self , event : Event ) -> Result < ( ) , Error > {
155
155
{
156
156
let mut locked_queue = self . queue . lock ( ) . unwrap ( ) ;
157
- locked_queue. push_back ( Arc :: new ( event) ) ;
157
+ locked_queue. push_back ( event) ;
158
158
self . persist_queue ( & * locked_queue) ?;
159
159
}
160
160
161
161
self . notifier . notify_one ( ) ;
162
162
Ok ( ( ) )
163
163
}
164
164
165
- pub ( crate ) fn next_event ( & self ) -> Arc < Event > {
165
+ pub ( crate ) fn next_event ( & self ) -> Event {
166
166
let locked_queue =
167
167
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 ( )
169
169
}
170
170
171
171
pub ( crate ) fn event_handled ( & self ) -> Result < ( ) , Error > {
@@ -178,7 +178,7 @@ where
178
178
Ok ( ( ) )
179
179
}
180
180
181
- fn persist_queue ( & self , locked_queue : & VecDeque < Arc < Event > > ) -> Result < ( ) , Error > {
181
+ fn persist_queue ( & self , locked_queue : & VecDeque < Event > ) -> Result < ( ) , Error > {
182
182
self . persister
183
183
. persist ( EVENTS_PERSISTENCE_KEY , & EventQueueSerWrapper ( locked_queue) )
184
184
. map_err ( |_| Error :: PersistenceFailed ) ?;
@@ -195,13 +195,13 @@ where
195
195
reader : & mut R , persister : K ,
196
196
) -> Result < Self , lightning:: ln:: msgs:: DecodeError > {
197
197
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 ) ;
199
199
let notifier = Condvar :: new ( ) ;
200
200
Ok ( Self { queue, notifier, persister } )
201
201
}
202
202
}
203
203
204
- struct EventQueueDeserWrapper ( VecDeque < Arc < Event > > ) ;
204
+ struct EventQueueDeserWrapper ( VecDeque < Event > ) ;
205
205
206
206
impl Readable for EventQueueDeserWrapper {
207
207
fn read < R : lightning:: io:: Read > (
@@ -210,13 +210,13 @@ impl Readable for EventQueueDeserWrapper {
210
210
let len: u16 = Readable :: read ( reader) ?;
211
211
let mut queue = VecDeque :: with_capacity ( len as usize ) ;
212
212
for _ in 0 ..len {
213
- queue. push_back ( Arc :: new ( Readable :: read ( reader) ?) ) ;
213
+ queue. push_back ( Readable :: read ( reader) ?) ;
214
214
}
215
215
Ok ( Self ( queue) )
216
216
}
217
217
}
218
218
219
- struct EventQueueSerWrapper < ' a > ( & ' a VecDeque < Arc < Event > > ) ;
219
+ struct EventQueueSerWrapper < ' a > ( & ' a VecDeque < Event > ) ;
220
220
221
221
impl Writeable for EventQueueSerWrapper < ' _ > {
222
222
fn write < W : Writer > ( & self , writer : & mut W ) -> Result < ( ) , lightning:: io:: Error > {
@@ -559,7 +559,7 @@ where
559
559
counterparty_node_id,
560
560
) ;
561
561
self . event_queue
562
- . add_event ( Event :: ChannelReady { channel_id, user_channel_id } )
562
+ . add_event ( Event :: ChannelReady { channel_id : ChannelId ( channel_id ) , user_channel_id : UserChannelId ( user_channel_id ) } )
563
563
. expect ( "Failed to push to event queue" ) ;
564
564
}
565
565
LdkEvent :: ChannelClosed { channel_id, reason, user_channel_id } => {
@@ -570,7 +570,7 @@ where
570
570
reason
571
571
) ;
572
572
self . event_queue
573
- . add_event ( Event :: ChannelClosed { channel_id, user_channel_id } )
573
+ . add_event ( Event :: ChannelClosed { channel_id : ChannelId ( channel_id ) , user_channel_id : UserChannelId ( user_channel_id ) } )
574
574
. expect ( "Failed to push to event queue" ) ;
575
575
}
576
576
LdkEvent :: DiscardFunding { .. } => { }
0 commit comments