Tue Nov 28 18:21:40 EST 2006


in order to complete the scheduler, a task needs to specify what it's
actually waiting for. there are 4 cases

INPUT     if     iq
OUTPUT    of	 oq

where a FILE is an OS event, and a QUEUE is an internal task
communication mechanism (that can be added later). these best behave
in a similar manner, so inter-task communication and inter-process
communication behaves the same. (an internal queue is just a listvar:
pointer to a list/queue) blocking events are handled by placing the
task + the stream/listvar in a wait list.

i currently have 2 points:
of -> calls schedule word explicitly (which returns e_yield)
if -> primitive returns e_yield

going to have a look at graham's "on lisp". it has a chapter about
this stuff, which i skimmed over when i read it.

ok.. no reading, just thinking.

it seems to work now. still need to test a bit.