String c_WaitableWaitHandle::getName() { switch (getKind()) { case Kind::Static: not_reached(); case Kind::AsyncFunction: return asAsyncFunction()->getName(); case Kind::AsyncGenerator: return asAsyncGenerator()->getName(); case Kind::AwaitAll: return asAwaitAll()->getName(); case Kind::Condition: return asCondition()->getName(); case Kind::Reschedule: return asReschedule()->getName(); case Kind::Sleep: return asSleep()->getName(); case Kind::ExternalThreadEvent: return asExternalThreadEvent()->getName(); } not_reached(); }
void c_WaitableWaitHandle::enterContextImpl(context_idx_t ctx_idx) { switch (getKind()) { case Kind::Static: not_reached(); case Kind::AsyncFunction: return asAsyncFunction()->enterContextImpl(ctx_idx); case Kind::AsyncGenerator: return asAsyncGenerator()->enterContextImpl(ctx_idx); case Kind::GenArray: return asGenArray()->enterContextImpl(ctx_idx); case Kind::GenMap: return asGenMap()->enterContextImpl(ctx_idx); case Kind::GenVector: return asGenVector()->enterContextImpl(ctx_idx); case Kind::Reschedule: return asReschedule()->enterContextImpl(ctx_idx); case Kind::Sleep: return asSleep()->enterContextImpl(ctx_idx); case Kind::ExternalThreadEvent: return asExternalThreadEvent()->enterContextImpl(ctx_idx); } not_reached(); }