mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-08-27 06:01:48 +02:00
multi: remove the need for the graphsession package
In this commit, we add a `GraphSession` method to the `ChannelGraph`. This method provides a caller with access to a `NodeTraverser`. This is used by pathfinding to create a graph "session" overwhich to perform a set of queries for a pathfinding attempt. With this refactor, we hide details such as DB transaction creation and transaction commits from the caller. So with this, pathfinding does not need to remember to "close the graph session". With this commit, the `graphsession` package may be completely removed.
This commit is contained in:
@@ -343,19 +343,7 @@ func (p *paymentSession) RequestRoute(maxAmt, feeLimit lnwire.MilliSatoshi,
|
||||
}
|
||||
|
||||
for {
|
||||
// Get a routing graph session.
|
||||
graph, closeGraph, err := p.graphSessFactory.NewGraphSession()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = findPath(graph)
|
||||
// First, close routing graph session.
|
||||
// NOTE: this will be removed in an upcoming commit.
|
||||
if graphErr := closeGraph(); graphErr != nil {
|
||||
log.Errorf("could not close graph session: %v",
|
||||
graphErr)
|
||||
}
|
||||
err := p.graphSessFactory.GraphSession(findPath)
|
||||
// If there is an error, and it is not a path finding error, we
|
||||
// return it immediately.
|
||||
if err != nil && !lnutils.ErrorAs[*pathFindingError](err) {
|
||||
@@ -365,7 +353,8 @@ func (p *paymentSession) RequestRoute(maxAmt, feeLimit lnwire.MilliSatoshi,
|
||||
// to check the underlying error.
|
||||
//
|
||||
//nolint:errorlint
|
||||
err = err.(*pathFindingError).Unwrap()
|
||||
pErr, _ := err.(*pathFindingError)
|
||||
err = pErr.Unwrap()
|
||||
}
|
||||
|
||||
// Otherwise, we'll switch on the path finding error.
|
||||
|
Reference in New Issue
Block a user