The Squirrel interpreter. See http://www.squirrel-lang.org/

Dependents:   Squirrel

Revision:
0:97a4f8cc534c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/samples/coroutines.nut	Tue Dec 16 10:20:34 2014 +0000
@@ -0,0 +1,25 @@
+function coroutine_test(a,b)
+{
+	::print(a+" "+b+"\n");
+	local ret = ::suspend("suspend 1");
+	::print("the coroutine says "+ret+"\n");
+	ret = ::suspend("suspend 2");
+	::print("the coroutine says "+ret+"\n");
+	ret = ::suspend("suspend 3");
+	::print("the coroutine says "+ret+"\n");
+	return "I'm done"
+}
+
+local coro = ::newthread(coroutine_test);
+
+local susparam = coro.call("test","coroutine"); //starts the coroutine
+
+local i = 1;
+do
+{
+	::print("suspend passed ["+susparam+"]\n")
+	susparam = coro.wakeup("ciao "+i);
+	++i;
+}while(coro.getstatus()=="suspended")
+
+::print("return passed ["+susparam+"]\n")
\ No newline at end of file