service/example: update to not deadlock.
This commit is contained in:
+13
-1
@@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
"bitbucket.org/kardianos/service"
|
"bitbucket.org/kardianos/service"
|
||||||
)
|
)
|
||||||
@@ -73,10 +74,21 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var exit = make(chan struct{})
|
||||||
|
|
||||||
func doWork() {
|
func doWork() {
|
||||||
log.Info("I'm Running!")
|
log.Info("I'm Running!")
|
||||||
select {}
|
ticker := time.NewTicker(time.Minute)
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ticker.C:
|
||||||
|
log.Info("Still running...")
|
||||||
|
case <-exit:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
func stopWork() {
|
func stopWork() {
|
||||||
log.Info("I'm Stopping!")
|
log.Info("I'm Stopping!")
|
||||||
|
exit <- struct{}{}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user