Skip to content

Commit 91eff9a

Browse files
committed
f - Document expectations around handling duplicate events
1 parent 59d0e1e commit 91eff9a

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

lightning/src/util/events.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,13 +388,20 @@ pub trait MessageSendEventsProvider {
388388
///
389389
/// [`process_pending_events`]: Self::process_pending_events
390390
pub trait EventsProvider {
391-
/// Processes any generated events with the given event handler.
391+
/// Processes any events generated since the last call using the given event handler.
392+
///
393+
/// Subsequent calls must only process new events. However, handlers must be capable of handling
394+
/// duplicate events across process restarts. This may occur if the provider was recovered from
395+
/// an old state (i.e., it hadn't been successfully persisted after processing pending events).
392396
fn process_pending_events<H: Deref>(&self, handler: H) where H::Target: EventHandler;
393397
}
394398

395399
/// A trait implemented for objects handling events from [`EventsProvider`].
396400
pub trait EventHandler {
397401
/// Handles the given [`Event`].
402+
///
403+
/// See [`EventsProvider::process_pending_events`] for details that must be considered when
404+
/// implementing this method.
398405
fn handle_event(&self, event: Event);
399406
}
400407

0 commit comments

Comments
 (0)