coroutine: new push/pull interface

svn path=/trunk/libs/coroutine/; revision=84657