import imvu.service
from imvu.task import task, Start, Queue, Sleep

sp = imvu.service.RealServiceProvider()

@task
def producer(queue):
    for i in range(10):
        queue.put(i)
        yield Sleep(1)
    queue.put(None)

@task
def consumer(queue):
    while True:
        value = yield queue.get()
        if value is None:
            break
        print value

@task
def main():
    queue = Queue()
    producerFuture = yield Start(producer(queue))
    consumerFuture = yield Start(consumer(queue))

    yield producerFuture
    yield consumerFuture

sp.taskScheduler._call(main())
