consensus/ethash: close mmap before rename, windows limitation
This commit is contained in:
		| @@ -130,13 +130,16 @@ func memoryMapAndGenerate(path string, size uint64, generator func(buffer []uint | |||||||
| 	data := buffer[len(dumpMagic):] | 	data := buffer[len(dumpMagic):] | ||||||
| 	generator(data) | 	generator(data) | ||||||
|  |  | ||||||
| 	if err := mem.Flush(); err != nil { | 	if err := mem.Unmap(); err != nil { | ||||||
| 		mem.Unmap() |  | ||||||
| 		dump.Close() |  | ||||||
| 		return nil, nil, nil, err | 		return nil, nil, nil, err | ||||||
| 	} | 	} | ||||||
| 	os.Rename(temp, path) | 	if err := dump.Close(); err != nil { | ||||||
| 	return dump, mem, data, nil | 		return nil, nil, nil, err | ||||||
|  | 	} | ||||||
|  | 	if err := os.Rename(temp, path); err != nil { | ||||||
|  | 		return nil, nil, nil, err | ||||||
|  | 	} | ||||||
|  | 	return memoryMap(path) | ||||||
| } | } | ||||||
|  |  | ||||||
| // cache wraps an ethash cache with some metadata to allow easier concurrent use. | // cache wraps an ethash cache with some metadata to allow easier concurrent use. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user