[View]  [Edit]  [Lock]  [References]  [Attachments]  [History]  [Home]  [Changes]  [Search]  [Help] 

test[fibers] 01 sleep

This is a quick example of how you can write sleep with fibers.
Note that while sleep is blocking inside the fiber, node is able to handle other events.

| sleep |
sleep := [:ms| | fiber |
	fiber := Fiber current.
	[ fiber run ] valueDeferred: ms.
	Fiber yield
].
(Fiber @ [
	self print: ' about to wait ',DateTime new.
	sleep value: 1000.
	self print: ' post     wait ',DateTime new.
]) run.
self print: 'done.'