wouldn't it just hang here? it'll wait until the next time `ch()` is called. it needs a (optional) counter IMO so it knows when the channel is empty.

```js
urls.forEach(function(url){
  request.get(url, ch.push());
});

var res;
while (res = yield ch.shift()) {
  console.log(res.status);
}
```

this isn't necessary if you're executing stuff in a `co()` instance where you just want to make sure errors don't occur.