remove redundant goroutines watching brightness changes

This commit is contained in:
Drew Bowering 2024-04-01 07:08:47 -06:00
parent bbd231b2eb
commit 3c4b177360
Signed by: drew
GPG Key ID: DC9462335BDDAC6B

29
main.go
View File

@ -214,44 +214,23 @@ func cycleBrightness(pushchan <-chan bool, brightnesschan chan<- uint32) {
}
}
func loop(lights lightSet, insidebrightness <-chan uint32, outsidebrightness <-chan uint32, partypushed <-chan bool) {
inBrightChange := make(chan uint32)
outBrightChange := make(chan uint32)
func loop(lights lightSet, insidebrightness chan uint32, outsidebrightness chan uint32, partypushed <-chan bool) {
partyChange := make(chan bool)
lastBrightness := make(chan brightnesses)
go func() {
for {
brightIn := <-insidebrightness
select {
case inBrightChange <- brightIn:
default:
}
}
}()
go func() {
for {
brightOut := <-outsidebrightness
select {
case outBrightChange <- brightOut:
default:
}
}
}()
for {
go normal(lights, inBrightChange, outBrightChange, partyChange, lastBrightness)
go normal(lights, insidebrightness, outsidebrightness, partyChange, lastBrightness)
<-partypushed
// go party(lights)
// <-partypushed
partyChange <- true
lb := <-lastBrightness
select {
case inBrightChange <- lb.inside:
case insidebrightness <- lb.inside:
default:
}
select {
case outBrightChange <- lb.outside:
case outsidebrightness <- lb.outside:
default:
}
}