/*#io
docCopyright("Steve Dekorte", 2002)
docLicense("BSD revised")
*/


// coros

//void IoState_addCoroutine_(IoState *self, IoObject *coroutine);
//void IoState_removeCoroutine_(IoState *self, IoObject *coroutine);
size_t IoState_activeCoroCount(IoState *self);

// current

IoObject *IoState_currentCoroutine(IoState *self);
void IoState_setCurrentCoroutine_(IoState *self, IoObject *coroutine);

// control

void IoState_yield(IoState *self);
int IoState_yieldIfNeeded(IoState *self);

void *IoState_prepareToPause(IoState *self);
void IoState_resume_(IoState *self, IoObject *coroutine);

