mirror of https://github.com/docker/compose.git
Fix: Handle concurrent threads using mutex on the rainbowColor function
Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>
This commit is contained in:
parent
d8bf175cd4
commit
df70735295
|
@ -19,6 +19,7 @@ package formatter
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"github.com/docker/compose/v2/pkg/api"
|
"github.com/docker/compose/v2/pkg/api"
|
||||||
)
|
)
|
||||||
|
@ -88,8 +89,11 @@ func makeColorFunc(code string) colorFunc {
|
||||||
var nextColor = rainbowColor
|
var nextColor = rainbowColor
|
||||||
var rainbow []colorFunc
|
var rainbow []colorFunc
|
||||||
var currentIndex = 0
|
var currentIndex = 0
|
||||||
|
var mutex sync.Mutex
|
||||||
|
|
||||||
func rainbowColor() colorFunc {
|
func rainbowColor() colorFunc {
|
||||||
|
mutex.Lock()
|
||||||
|
defer mutex.Unlock()
|
||||||
result := rainbow[currentIndex]
|
result := rainbow[currentIndex]
|
||||||
currentIndex = (currentIndex + 1) % len(rainbow)
|
currentIndex = (currentIndex + 1) % len(rainbow)
|
||||||
return result
|
return result
|
||||||
|
|
Loading…
Reference in New Issue