24 lines
345 B
Go
24 lines
345 B
Go
package fusenrender
|
|
|
|
import "sync"
|
|
|
|
type UniqueId struct {
|
|
nodeId uint64
|
|
count uint64
|
|
mu sync.Mutex
|
|
}
|
|
|
|
func (uid *UniqueId) Get() uint64 {
|
|
uid.mu.Lock()
|
|
defer uid.mu.Unlock()
|
|
uid.count++
|
|
return (uid.count << 8) | uid.nodeId
|
|
}
|
|
|
|
func NewUniqueId(NodeId uint8) *UniqueId {
|
|
return &UniqueId{
|
|
nodeId: uint64(NodeId),
|
|
count: 0,
|
|
}
|
|
}
|