From 3f6d6cf4c60f601162bc79e424c10cbdf90b9089 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Mon, 4 Nov 2013 20:56:41 -0800 Subject: [PATCH] refactor use time.IsZero --- store/node.go | 12 +++++------- store/store.go | 4 +++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/store/node.go b/store/node.go index 0905d4d1b..b95a46e87 100644 --- a/store/node.go +++ b/store/node.go @@ -9,15 +9,13 @@ import ( etcdErr "github.com/coreos/etcd/error" ) -var ( - Permanent time.Time -) - const ( normal = iota removed ) +var Permanent time.Time + // Node is the basic element in the store system. // A key-value pair will have a string value // A directory will have a children map @@ -97,7 +95,7 @@ func (n *Node) IsHidden() bool { // IsPermanent function checks if the node is a permanent one. func (n *Node) IsPermanent() bool { - return n.ExpireTime.Sub(Permanent) == 0 + return !n.ExpireTime.IsZero() } // IsExpired function checks if the node has been expired. @@ -146,7 +144,7 @@ func (n *Node) Write(value string, index uint64, term uint64) *etcdErr.Error { } func (n *Node) ExpirationAndTTL() (*time.Time, int64) { - if n.ExpireTime.Sub(Permanent) != 0 { + if n.IsPermanent() { return &n.ExpireTime, int64(n.ExpireTime.Sub(time.Now())/time.Second) + 1 } return nil, 0 @@ -376,7 +374,7 @@ func (n *Node) UpdateTTL(expireTime time.Time) { } n.ExpireTime = expireTime - if expireTime.Sub(Permanent) != 0 { + if !n.IsPermanent() { n.Expire() } } diff --git a/store/store.go b/store/store.go index f752f6935..93278bf31 100644 --- a/store/store.go +++ b/store/store.go @@ -37,6 +37,7 @@ type Store interface { type store struct { Root *Node WatcherHub *watcherHub + TTLKeyHeap *TTLKeyHeap Index uint64 Term uint64 Stats *Stats @@ -54,6 +55,7 @@ func newStore() *store { s.Root = newDir(s, "/", UndefIndex, UndefTerm, nil, "", Permanent) s.Stats = newStats() s.WatcherHub = newWatchHub(1000) + s.TTLKeyHeap = newTTLKeyHeap() return s } @@ -390,7 +392,7 @@ func (s *store) internalCreate(nodePath string, value string, unique bool, repla d.Add(n) // Node with TTL - if expireTime.Sub(Permanent) != 0 { + if !n.IsPermanent() { n.Expire() e.Expiration, e.TTL = n.ExpirationAndTTL() }