simln-lib: add htlc interceptor for simulated nodes #261
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
for #255
Mostly took changes from these 2 commits to add an
Interceptor
trait:Some of the things I changed from those commits:
intercept_htlc
now returns aResult
to communicate the result of the intercepted htlc instead of sending it through a channel.JoinSet
for each interceptor'sintercept_htlc
so that if any of those holds the htlc for a long time it does not block the other interceptors. It then waits for the completion of the tasks in the joinset. If any of them returns a result to fail the htlc, it drops theJoinSet
since there is no need to wait for completion of other tasks because the htlc will fail anyways.