|
|
@ -295,7 +295,7 @@ func generateDataset(dest []uint32, epoch uint64, cache []uint32) { |
|
|
|
var pend sync.WaitGroup |
|
|
|
var pend sync.WaitGroup |
|
|
|
pend.Add(threads) |
|
|
|
pend.Add(threads) |
|
|
|
|
|
|
|
|
|
|
|
var progress uint32 |
|
|
|
var progress uint64 |
|
|
|
for i := 0; i < threads; i++ { |
|
|
|
for i := 0; i < threads; i++ { |
|
|
|
go func(id int) { |
|
|
|
go func(id int) { |
|
|
|
defer pend.Done() |
|
|
|
defer pend.Done() |
|
|
@ -311,7 +311,7 @@ func generateDataset(dest []uint32, epoch uint64, cache []uint32) { |
|
|
|
limit = uint32(size / hashBytes) |
|
|
|
limit = uint32(size / hashBytes) |
|
|
|
} |
|
|
|
} |
|
|
|
// Calculate the dataset segment
|
|
|
|
// Calculate the dataset segment
|
|
|
|
percent := uint32(size / hashBytes / 100) |
|
|
|
percent := size / hashBytes / 100 |
|
|
|
for index := first; index < limit; index++ { |
|
|
|
for index := first; index < limit; index++ { |
|
|
|
item := generateDatasetItem(cache, index, keccak512) |
|
|
|
item := generateDatasetItem(cache, index, keccak512) |
|
|
|
if swapped { |
|
|
|
if swapped { |
|
|
@ -319,8 +319,8 @@ func generateDataset(dest []uint32, epoch uint64, cache []uint32) { |
|
|
|
} |
|
|
|
} |
|
|
|
copy(dataset[index*hashBytes:], item) |
|
|
|
copy(dataset[index*hashBytes:], item) |
|
|
|
|
|
|
|
|
|
|
|
if status := atomic.AddUint32(&progress, 1); status%percent == 0 { |
|
|
|
if status := atomic.AddUint64(&progress, 1); status%percent == 0 { |
|
|
|
logger.Info("Generating DAG in progress", "percentage", uint64(status*100)/(size/hashBytes), "elapsed", common.PrettyDuration(time.Since(start))) |
|
|
|
logger.Info("Generating DAG in progress", "percentage", (status*100)/(size/hashBytes), "elapsed", common.PrettyDuration(time.Since(start))) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}(i) |
|
|
|
}(i) |
|
|
|