* ast: improve error handling * ast: handle select * dyngo: set filename of executed script * cfg: improve error reporting * Implement select for receiving channels * feat(select): add support for sending channels in case clauses * test: improve tests on select * feat(select): add support for "default" case
30 lines
493 B
Go
30 lines
493 B
Go
package main
|
|
|
|
import "time"
|
|
|
|
func main() {
|
|
|
|
// For our example we'll select across two channels.
|
|
c1 := make(chan string)
|
|
c2 := make(chan string)
|
|
|
|
// Each channel will receive a value after some amount
|
|
// of time, to simulate e.g. blocking RPC operations
|
|
// executing in concurrent goroutines.
|
|
go func() {
|
|
//time.Sleep(1 * time.Second)
|
|
time.Sleep(1e9)
|
|
c1 <- "one"
|
|
}()
|
|
go func() {
|
|
time.Sleep(2e9)
|
|
c2 <- "two"
|
|
}()
|
|
|
|
msg1 := <-c1
|
|
println(msg1)
|
|
|
|
msg2 := <-c2
|
|
println(msg2)
|
|
}
|