remove redundant goroutines watching brightness changes
This commit is contained in:
parent
bbd231b2eb
commit
3c4b177360
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) {
|
||||
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:
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user