mirror of
https://github.com/minio/minio.git
synced 2025-11-07 04:42:56 -05:00
Fixes #71 - some crazy races inside erasure and simplify the code
- This change also brings in changing 'unsigned char' to 'uint8_t' for brevity
This commit is contained in:
@@ -76,11 +76,15 @@ func decode(c *cli.Context) {
|
||||
// set up encoder
|
||||
erasureParameters, _ := erasure.ParseEncoderParams(k, m, erasure.CAUCHY)
|
||||
|
||||
// Get decoder
|
||||
encoder := erasure.NewEncoder(erasureParameters)
|
||||
|
||||
// decode data
|
||||
decodedData, err := erasure.Decode(chunks, erasureParameters, length)
|
||||
decodedData, err := encoder.Decode(chunks, length)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// append decoded data
|
||||
length, err = outputFile.Write(decodedData)
|
||||
if err != nil {
|
||||
|
||||
@@ -39,9 +39,13 @@ func encode(c *cli.Context) {
|
||||
|
||||
// set up encoder
|
||||
erasureParameters, _ := erasure.ParseEncoderParams(config.k, config.m, erasure.CAUCHY)
|
||||
|
||||
// Init new encoder
|
||||
encoder := erasure.NewEncoder(erasureParameters)
|
||||
|
||||
// encode data
|
||||
if config.blockSize == 0 {
|
||||
encodedData, length := erasure.Encode(input, erasureParameters)
|
||||
encodedData, length := encoder.Encode(input)
|
||||
for key, data := range encodedData {
|
||||
ioutil.WriteFile(config.output+"."+strconv.Itoa(key), data, 0600)
|
||||
ioutil.WriteFile(config.output+".length", []byte(strconv.Itoa(length)), 0600)
|
||||
@@ -55,7 +59,7 @@ func encode(c *cli.Context) {
|
||||
if chunk.Err != nil {
|
||||
log.Fatal(chunk.Err)
|
||||
}
|
||||
encodedData, length := erasure.Encode(chunk.Data, erasureParameters)
|
||||
encodedData, length := encoder.Encode(chunk.Data)
|
||||
for key, data := range encodedData {
|
||||
ioutil.WriteFile(config.output+"."+strconv.Itoa(chunkCount)+"."+strconv.Itoa(key), data, 0600)
|
||||
ioutil.WriteFile(config.output+"."+strconv.Itoa(chunkCount)+".length", []byte(strconv.Itoa(length)), 0600)
|
||||
|
||||
Reference in New Issue
Block a user