Skip to content

Instantly share code, notes, and snippets.

@krrrr38
Last active August 29, 2015 14:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save krrrr38/5e9dce25e41e41ee57b9 to your computer and use it in GitHub Desktop.
Save krrrr38/5e9dce25e41e41ee57b9 to your computer and use it in GitHub Desktop.
goroutineに出来ないのなんで
package main
import "fmt"
func rec(depth int, ch chan int) {
if depth > 3 {
return
} else {
ch <- depth
rec(depth+1, ch) // cannot be gorouting
}
}
func main() {
ch := make(chan int)
go func() {
rec(0, ch)
close(ch)
}()
for i := range ch {
fmt.Printf("value = %v\n", i)
}
}
@krrrr38
Copy link
Author

krrrr38 commented May 4, 2014

goroutineにしたら17行目通過してcloseしちゃうからだ

@krrrr38
Copy link
Author

krrrr38 commented May 5, 2014

再帰でgoroutineにした場合に、for i:= range ch のとこでdeadlockしないようにcloseさせる上手いやり方?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment