Isn't it possible to make the channels compatible with select(2) ? Being able to copy the go syntax is nice but I think will prove to be more of a headache in the long run. It's actually an annoyance that I have in go: select doesn't allow to mix channels with IO objects forcing the user to create goroutines to feed the latter into the former.
Advanced metaprogramming in C / Discussion
This is the discussion related to the wiki page Advanced metaprogramming in C.