#include <fstream>
#include <kernel>
#include <stdlib>
#include <thread>

coroutine Coroutine {};

void main(Coroutine& this) {
	while(true) {
		sout | "Coroutine 1" | endl;
		yield();
		sout | "Coroutine 2" | endl;
		suspend();
	}
}


int main(int argc, char* argv[]) {
	Coroutine c;
	for(int i = 0; i < 1_000; i++) {
		sout | "Thread 1" | endl;
		resume(c);
		sout | "Thread 2" | endl;
		yield();
	}
}
