mirror of
https://github.com/gohugoio/hugo.git
synced 2024-05-11 05:54:58 +00:00
Revert "Add Node.ID"
This reverts commit 5ef52294f90c51697bd3f918b3c3ed83baff657a.
This commit is contained in:
@ -14,12 +14,10 @@
|
||||
package hugolib
|
||||
|
||||
import (
|
||||
"github.com/spf13/cast"
|
||||
"html/template"
|
||||
"sync"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"github.com/spf13/cast"
|
||||
)
|
||||
|
||||
type Node struct {
|
||||
@ -39,24 +37,6 @@ type Node struct {
|
||||
paginator *Pager
|
||||
paginatorInit sync.Once
|
||||
scratch *Scratch
|
||||
id int
|
||||
idInit sync.Once
|
||||
}
|
||||
|
||||
// This should probably be owned by Site and new ids assigned on creation,
|
||||
// but that would lead to massive changes; do it simple for now.
|
||||
var nodeIDCounter uint64
|
||||
|
||||
func nextNodeID() int {
|
||||
return int(atomic.AddUint64(&nodeIDCounter, 1))
|
||||
}
|
||||
|
||||
// ID returns an integer that identifies this Node.
|
||||
// This is unique for a given Hugo build, but must not be considered stable.
|
||||
// See UniqueID on Page for an identify that is stable for repeated builds.
|
||||
func (n *Node) ID() int {
|
||||
n.idInit.Do(func() { n.id = nextNodeID() })
|
||||
return n.id
|
||||
}
|
||||
|
||||
func (n *Node) Now() time.Time {
|
||||
|
@ -14,11 +14,8 @@
|
||||
package hugolib
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestNodeSimpleMethods(t *testing.T) {
|
||||
@ -41,28 +38,3 @@ func TestNodeSimpleMethods(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestNodeID(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
n1 := &Node{}
|
||||
n2 := &Node{}
|
||||
|
||||
assert.True(t, n1.ID() > 0)
|
||||
assert.Equal(t, n1.ID(), n1.ID())
|
||||
assert.True(t, n2.ID() > n1.ID())
|
||||
|
||||
var wg sync.WaitGroup
|
||||
|
||||
for i := 1; i <= 10; i++ {
|
||||
wg.Add(1)
|
||||
go func(j int) {
|
||||
for k := 0; k < 10; k++ {
|
||||
n := &Node{}
|
||||
assert.True(t, n.ID() > 0)
|
||||
}
|
||||
wg.Done()
|
||||
}(i)
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
Reference in New Issue
Block a user