mobile: Move lndStarted check to the top of the Start function
This commit is contained in:
parent
5c5b91216a
commit
e1ebdb311a
@ -31,6 +31,15 @@ var lndStarted int32
|
|||||||
// current app directory in order to ensure lnd has the permissions needed to
|
// current app directory in order to ensure lnd has the permissions needed to
|
||||||
// write to it.
|
// write to it.
|
||||||
func Start(extraArgs string, rpcReady Callback) {
|
func Start(extraArgs string, rpcReady Callback) {
|
||||||
|
// We only support a single lnd instance at a time (singleton) for now,
|
||||||
|
// so we make sure to return immediately if it has already been
|
||||||
|
// started.
|
||||||
|
if !atomic.CompareAndSwapInt32(&lndStarted, 0, 1) {
|
||||||
|
err := errors.New("lnd already started")
|
||||||
|
rpcReady.OnError(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// (Re-)initialize the in-mem gRPC listeners we're going to give to lnd.
|
// (Re-)initialize the in-mem gRPC listeners we're going to give to lnd.
|
||||||
// This is required each time lnd is started, because when lnd shuts
|
// This is required each time lnd is started, because when lnd shuts
|
||||||
// down, the in-mem listeners are closed.
|
// down, the in-mem listeners are closed.
|
||||||
@ -58,6 +67,7 @@ func Start(extraArgs string, rpcReady Callback) {
|
|||||||
// Hook interceptor for os signals.
|
// Hook interceptor for os signals.
|
||||||
shutdownInterceptor, err := signal.Intercept()
|
shutdownInterceptor, err := signal.Intercept()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
atomic.StoreInt32(&lndStarted, 0)
|
||||||
_, _ = fmt.Fprintln(os.Stderr, err)
|
_, _ = fmt.Fprintln(os.Stderr, err)
|
||||||
rpcReady.OnError(err)
|
rpcReady.OnError(err)
|
||||||
return
|
return
|
||||||
@ -67,6 +77,7 @@ func Start(extraArgs string, rpcReady Callback) {
|
|||||||
// line options. This function will also set up logging properly.
|
// line options. This function will also set up logging properly.
|
||||||
loadedConfig, err := lnd.LoadConfig(shutdownInterceptor)
|
loadedConfig, err := lnd.LoadConfig(shutdownInterceptor)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
atomic.StoreInt32(&lndStarted, 0)
|
||||||
_, _ = fmt.Fprintln(os.Stderr, err)
|
_, _ = fmt.Fprintln(os.Stderr, err)
|
||||||
rpcReady.OnError(err)
|
rpcReady.OnError(err)
|
||||||
return
|
return
|
||||||
@ -88,15 +99,6 @@ func Start(extraArgs string, rpcReady Callback) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// We only support a single lnd instance at a time (singleton) for now,
|
|
||||||
// so we make sure to return immediately if it has already been
|
|
||||||
// started.
|
|
||||||
if !atomic.CompareAndSwapInt32(&lndStarted, 0, 1) {
|
|
||||||
err := errors.New("lnd already started")
|
|
||||||
rpcReady.OnError(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Call the "real" main in a nested manner so the defers will properly
|
// Call the "real" main in a nested manner so the defers will properly
|
||||||
// be executed in the case of a graceful shutdown.
|
// be executed in the case of a graceful shutdown.
|
||||||
go func() {
|
go func() {
|
||||||
|
Loading…
Reference in New Issue
Block a user