2014/1/15 Pierre Talbot <ptalbot@hyc.io>
void push_data(boost::coroutines::coroutine<std::string>::push_type& sink)
{
  sink("test1");
  t = std::thread(push_data2, std::move(sink));
}

'sink' is synthesized by the framework and is attached to coroutine-stack.
because you move the synth. coroutine, the code inside the framework can't access it any more (therefore the assertion from intrusive_ptr<>).