Skip to content

Commit 3b6ded0

Browse files
committed
f Use return non-Arc'ed Event afterall
1 parent 417eb55 commit 3b6ded0

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/event.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ pub(crate) struct EventQueue<K: Deref>
136136
where
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

206206
impl 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

221221
impl 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

Comments
 (0)