remove redundant goroutines watching brightness changes
This commit is contained in:
29
main.go
29
main.go
@ -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) {
|
func loop(lights lightSet, insidebrightness chan uint32, outsidebrightness chan uint32, partypushed <-chan bool) {
|
||||||
inBrightChange := make(chan uint32)
|
|
||||||
outBrightChange := make(chan uint32)
|
|
||||||
partyChange := make(chan bool)
|
partyChange := make(chan bool)
|
||||||
lastBrightness := make(chan brightnesses)
|
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 {
|
for {
|
||||||
go normal(lights, inBrightChange, outBrightChange, partyChange, lastBrightness)
|
go normal(lights, insidebrightness, outsidebrightness, partyChange, lastBrightness)
|
||||||
<-partypushed
|
<-partypushed
|
||||||
// go party(lights)
|
// go party(lights)
|
||||||
// <-partypushed
|
// <-partypushed
|
||||||
partyChange <- true
|
partyChange <- true
|
||||||
lb := <-lastBrightness
|
lb := <-lastBrightness
|
||||||
select {
|
select {
|
||||||
case inBrightChange <- lb.inside:
|
case insidebrightness <- lb.inside:
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
select {
|
select {
|
||||||
case outBrightChange <- lb.outside:
|
case outsidebrightness <- lb.outside:
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user