本文整理汇总了Golang中github.com/Symantec/Dominator/lib/filesystem.RegularInode.Hash方法的典型用法代码示例。如果您正苦于以下问题:Golang RegularInode.Hash方法的具体用法?Golang RegularInode.Hash怎么用?Golang RegularInode.Hash使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/Symantec/Dominator/lib/filesystem.RegularInode
的用法示例。
在下文中一共展示了RegularInode.Hash方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: processFileUpdates
func (sub *Sub) processFileUpdates() bool {
haveUpdates := false
for {
image := sub.requiredImage
if image != nil && sub.computedInodes == nil {
sub.computedInodes = make(map[string]*filesystem.RegularInode)
sub.busyFlagMutex.Lock()
if sub.deleting {
sub.busyFlagMutex.Unlock()
return false
}
sub.herd.computedFilesManager.Update(
filegenclient.Machine{sub.mdb, sub.getComputedFiles(image)})
sub.busyFlagMutex.Unlock()
}
select {
case fileInfos := <-sub.fileUpdateChannel:
if image == nil {
continue
}
filenameToInodeTable := image.FileSystem.FilenameToInodeTable()
for _, fileInfo := range fileInfos {
inum, ok := filenameToInodeTable[fileInfo.Pathname]
if !ok {
continue
}
genericInode, ok := image.FileSystem.InodeTable[inum]
if !ok {
continue
}
cInode, ok := genericInode.(*filesystem.ComputedRegularInode)
if !ok {
continue
}
rInode := new(filesystem.RegularInode)
rInode.Mode = cInode.Mode
rInode.Uid = cInode.Uid
rInode.Gid = cInode.Gid
rInode.MtimeSeconds = -1 // The time is set during the compute.
rInode.Size = fileInfo.Length
rInode.Hash = fileInfo.Hash
sub.computedInodes[fileInfo.Pathname] = rInode
haveUpdates = true
}
default:
return haveUpdates
}
}
return haveUpdates
}