Browse Source

storage: do not copy sync.Mutex by value

pull/285/head
Jianfei Wang 9 years ago
parent
commit
a192373c25
  1. 8
      go/storage/needle_map.go

8
go/storage/needle_map.go

@ -39,7 +39,7 @@ type baseNeedleMapper struct {
mapMetric
}
func (nm baseNeedleMapper) IndexFileSize() uint64 {
func (nm *baseNeedleMapper) IndexFileSize() uint64 {
stat, err := nm.indexFile.Stat()
if err == nil {
return uint64(stat.Size())
@ -47,7 +47,7 @@ func (nm baseNeedleMapper) IndexFileSize() uint64 {
return 0
}
func (nm baseNeedleMapper) IndexFileName() string {
func (nm *baseNeedleMapper) IndexFileName() string {
return nm.indexFile.Name()
}
@ -57,7 +57,7 @@ func idxFileEntry(bytes []byte) (key uint64, offset uint32, size uint32) {
size = binary.BigEndian.Uint32(bytes[12:16])
return
}
func (nm baseNeedleMapper) appendToIndexFile(key uint64, offset uint32, size uint32) error {
func (nm *baseNeedleMapper) appendToIndexFile(key uint64, offset uint32, size uint32) error {
bytes := make([]byte, 16)
binary.BigEndian.PutUint64(bytes[0:8], key)
binary.BigEndian.PutUint32(bytes[8:12], offset)
@ -72,7 +72,7 @@ func (nm baseNeedleMapper) appendToIndexFile(key uint64, offset uint32, size uin
_, err := nm.indexFile.Write(bytes)
return err
}
func (nm baseNeedleMapper) IndexFileContent() ([]byte, error) {
func (nm *baseNeedleMapper) IndexFileContent() ([]byte, error) {
nm.indexFileAccessLock.Lock()
defer nm.indexFileAccessLock.Unlock()
return ioutil.ReadFile(nm.indexFile.Name())

Loading…
Cancel
Save