Потоки


* Фактически это способы вызова методов

// synchronous 
result := self foo

// async, immediately returns a Future
futureResult := self futureSend(foo) 

// async, immediately returns nil
self asyncSend(foo)

* Синхронизация потоков

// This would print "112233"

obj1 := Object clone

obj1 test := method(for(n, 1, 3, n print; yield))

obj2 := obj1 clone

obj1 asyncSend(test); obj2 asyncSend(test)

while(Scheduler yieldingCoros size > 1, yield)

q := method(wait(1))

futureSend(q)