diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2026-06-09 21:22:42 -0700 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2026-06-09 21:22:42 -0700 |
| commit | 86b515a6bfcb9b5a162e9bac6473c9886d2911f2 (patch) | |
| tree | 610d4b26579ce5ce1d5bc9cfe8c3d1ca775c7cca | |
| parent | 0cf646b8ae96774aba513dcde99e7ffc11c0e7f9 (diff) | |
| download | imgutil-86b515a6bfcb9b5a162e9bac6473c9886d2911f2.tar.zst | |
Add a concurrency limit
| -rw-r--r-- | ils.go | 29 |
1 files changed, 17 insertions, 12 deletions
@@ -204,19 +204,24 @@ func thumbnailFiles(w io.Writer, imagePaths []string, width, rowWidth, cellX, ce rowImages[i] = make(chan image.Image, 1) } errCh := make(chan error, 1) - for i, row := range rows { - go func() { - img, err := compositeImageRow(row, width*cellX, rowWidth*cellX, cellX, aspectRatio) - if err != nil { - select { - case errCh <- err: - default: + go func() { + sem := make(chan struct{}, 20) + for i, row := range rows { + sem <- struct{}{} + go func() { + defer func() { <-sem }() + img, err := compositeImageRow(row, width*cellX, rowWidth*cellX, cellX, aspectRatio) + if err != nil { + select { + case errCh <- err: + default: + } + return } - return - } - rowImages[i] <- img - }() - } + rowImages[i] <- img + }() + } + }() for i, row := range rows { thisRowWidth := 0 for j, filename := range row { |
