36 lines
467 B
Go
36 lines
467 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
|
|
func launch() {
|
|
fmt.Println("To abort launch press Enter")
|
|
for i:=10;i >=0; i-- {
|
|
fmt.Printf("%d...\n",i)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
abort := make(chan struct{})
|
|
|
|
go func() {
|
|
os.Stdin.Read(make([]byte,1))
|
|
abort <- struct{}{}
|
|
}()
|
|
|
|
tick := time.Tick(1*time.Second)
|
|
|
|
for i:=10; i>=0; i-- {
|
|
fmt.Printf("%d...\n",i)
|
|
select {
|
|
case <-tick:
|
|
case <- abort:
|
|
fmt.Println("Launch cancelled")
|
|
return
|
|
}
|
|
}
|
|
} |