From 297e053a87a2a5f83cfc22cb5deb01e2d1b8ba11 Mon Sep 17 00:00:00 2001 From: bai Date: Tue, 6 Nov 2018 14:17:17 +0800 Subject: [PATCH] node.go depend --- node/node.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/node/node.go b/node/node.go index ada3837217..cdd5619935 100644 --- a/node/node.go +++ b/node/node.go @@ -33,7 +33,7 @@ import ( "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/p2p" "github.com/ethereum/go-ethereum/rpc" - "github.com/prometheus/prometheus/util/flock" + "github.com/theckman/go-flock" ) // Node is a container on which services can be registered. @@ -43,7 +43,7 @@ type Node struct { accman *accounts.Manager ephemeralKeystore string // if non-empty, the key directory that will be removed by Stop - instanceDirLock flock.Releaser // prevents concurrent use of instance directory + instanceDirLock *flock.Flock // prevents concurrent use of instance directory serverConfig p2p.Config server *p2p.Server // Currently running P2P networking layer @@ -238,11 +238,11 @@ func (n *Node) openDataDir() error { } // Lock the instance directory to prevent concurrent use by another instance as well as // accidental use of the instance directory as a database. - release, _, err := flock.New(filepath.Join(instdir, "LOCK")) + n.instanceDirLock=flock.NewFlock(filepath.Join(instdir, "LOCK")) + _, err :=n.instanceDirLock.TryLock() if err != nil { return convertFileLockError(err) } - n.instanceDirLock = release return nil } @@ -426,7 +426,7 @@ func (n *Node) Stop() error { // Release instance directory lock. if n.instanceDirLock != nil { - if err := n.instanceDirLock.Release(); err != nil { + if err := n.instanceDirLock.Unlock(); err != nil { n.log.Error("Can't release datadir lock", "err", err) } n.instanceDirLock = nil