import "fmt"
var mtx chan int
var sem []chan int
func sink() {
val := <-mtx
for i := 0; i < 10; i++ {
val = <-sem[i]
}
fmt.Println("V: ", val)
}
func source() {
mtx <- 1
for i := 0; i < 10; i++ {
sem[i] <- i
}
}
func main() {
mtx = make(chan int)
sem = make([]chan int, 10)
go sink()
go source()
fmt.Println("All done!")
}
---
sem = make([]chan int, 10)
See below.
On 14 April 2010 05:13, ish <ishwar...@gmail.com> wrote:
> The follwoing code does SIGSEGV, any insight will be appreciated.
> -ishwar
> ------
> package main
>
> import "fmt"
>
> var mtx chan int
> var sem []chan int
>
> func sink() {
> val := <-mtx
> for i := 0; i < 10; i++ {
> val = <-sem[i]
> }
> fmt.Println("V: ", val)
> }
>
> func source() {
> mtx <- 1
> for i := 0; i < 10; i++ {
> sem[i] <- i
> }
> }
>
> func main() {
> mtx = make(chan int)
> sem = make([]chan int, 10)
for i := 0; i < 10; i++ {
sem[i] = make(chan int)