diffIDComputationGoroutine reads all input from layerStream, uncompresses using decompressor if necessary, and sends its digest, and status, if any, to dest.
(dest chan<- diffIDResult, layerStream io.ReadCloser, decompressor compressiontypes.DecompressorFunc)
| 966 | |
| 967 | // diffIDComputationGoroutine reads all input from layerStream, uncompresses using decompressor if necessary, and sends its digest, and status, if any, to dest. |
| 968 | func diffIDComputationGoroutine(dest chan<- diffIDResult, layerStream io.ReadCloser, decompressor compressiontypes.DecompressorFunc) { |
| 969 | result := diffIDResult{ |
| 970 | digest: "", |
| 971 | err: errors.New("Internal error: unexpected panic in diffIDComputationGoroutine"), |
| 972 | } |
| 973 | defer func() { dest <- result }() |
| 974 | defer layerStream.Close() // We do not care to bother the other end of the pipe with other failures; we send them to dest instead. |
| 975 | |
| 976 | result.digest, result.err = computeDiffID(layerStream, decompressor) |
| 977 | } |
| 978 | |
| 979 | // computeDiffID reads all input from layerStream, uncompresses it using decompressor if necessary, and returns its digest. |
| 980 | func computeDiffID(stream io.Reader, decompressor compressiontypes.DecompressorFunc) (digest.Digest, error) { |
searching dependent graphs…