diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-04-14 16:32:47 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2017-04-14 16:32:47 +0800 |
commit | 65e1095c3f86e46c9741b95e7f856312d74c7501 (patch) | |
tree | 8f28a3db4fe907be2c77c4fc607712d805326d4c /consensus/ethash | |
parent | ee05cc4a2738130315a689351cc536fdb1f4bbab (diff) | |
download | go-tangerine-65e1095c3f86e46c9741b95e7f856312d74c7501.tar.gz go-tangerine-65e1095c3f86e46c9741b95e7f856312d74c7501.tar.zst go-tangerine-65e1095c3f86e46c9741b95e7f856312d74c7501.zip |
consensus/ethash: close mmap before rename, windows limitation
Diffstat (limited to 'consensus/ethash')
-rw-r--r-- | consensus/ethash/ethash.go | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/consensus/ethash/ethash.go b/consensus/ethash/ethash.go index d284e7b00..b028f50e6 100644 --- a/consensus/ethash/ethash.go +++ b/consensus/ethash/ethash.go @@ -130,13 +130,16 @@ func memoryMapAndGenerate(path string, size uint64, generator func(buffer []uint data := buffer[len(dumpMagic):] generator(data) - if err := mem.Flush(); err != nil { - mem.Unmap() - dump.Close() + if err := mem.Unmap(); err != nil { + return nil, nil, nil, err + } + if err := dump.Close(); err != nil { + return nil, nil, nil, err + } + if err := os.Rename(temp, path); err != nil { return nil, nil, nil, err } - os.Rename(temp, path) - return dump, mem, data, nil + return memoryMap(path) } // cache wraps an ethash cache with some metadata to allow easier concurrent use. |