Esempio n. 1
0
def init():
    from rodio.internals.parther import getTransformer
    from rodio import EventLoop, printfromprocess
    tx = getTransformer(__file__)
    printfromprocess("__main__.py init")
    process = EventLoop("MainEventLoop", self_pause=False, shared_queue=False)
    process.load_module(tx('./mainmod.py'), block=True)
    process.terminate()
    printfromprocess("__main__.py end")
Esempio n. 2
0
def buildEventLoop(count):
    if is_within_loop():
        parent = get_running_loop()
        printfromprocess(
            f"_is_directly_contained: {parent._is_directly_nested}")
    if count == 10:
        return
    process = EventLoop(f'process:{count}')
    process.nextTick(buildEventLoop, count + 1)
    process.scheduleExit()
Esempio n. 3
0
def decoy():
    loop = get_current_loop()
    printfromprocess("heyyo from decoy")
    printfromprocess("sleeping for 2 secs...")
    time.sleep(2)
    printfromprocess("quiting after 3 secs...")
    time.sleep(3)
    loop.scheduleExit()
Esempio n. 4
0
from rodio.internals.parther import getTransformer
from rodio import get_running_loop, EventLoop, is_within_loop, printfromprocess

tx = getTransformer(__file__)

printfromprocess("mainmod.py init")
process1 = EventLoop(f"process1", self_pause=False, shared_queue=False)
process2 = EventLoop(f"process2", self_pause=False, shared_queue=False)

module1 = process1.load_module(tx('./module01.py'))
module2 = process2.load_module(tx('./module02.py'))

module1.on('complete', lambda process: (process.kill()
                                        if not process.ended() else None))

module2.on('complete', lambda process: (process.kill()
                                        if not process.ended() else None))

process1.join()
process2.join()

printfromprocess("mainmod.py exit")
Esempio n. 5
0
import time
from rodio import EventLoop, get_current_loop, printfromprocess


def decoy():
    loop = get_current_loop()
    printfromprocess("heyyo from decoy")
    printfromprocess("sleeping for 2 secs...")
    time.sleep(2)
    printfromprocess("quiting after 3 secs...")
    time.sleep(3)
    loop.scheduleExit()


printfromprocess("main init")

with EventLoop(block=True) as loop:
    loop.nextTick(lambda: printfromprocess("hello"))
    loop.nextTick(lambda: printfromprocess("world"))
    loop.nextTick(decoy)

printfromprocess("main exit")
Esempio n. 6
0
async def act1():
    printfromprocess("act1 sleeping 2 secs")
    await asyncio.sleep(2)
    printfromprocess("act1 done sleeping 2 secs")
Esempio n. 7
0
import asyncio
from rodio import get_running_loop, printfromprocess

process = get_running_loop()


async def act1():
    printfromprocess("act1 sleeping 2 secs")
    await asyncio.sleep(2)
    printfromprocess("act1 done sleeping 2 secs")


async def act2():
    printfromprocess("act2 sleeping 2 secs")
    await asyncio.sleep(2)
    printfromprocess("act2 done sleeping 2 secs")


process.nextTick(lambda: printfromprocess("module02.py init"))

process.nextTick(lambda: printfromprocess("lorem ipsum"))

process.nextTick([act1, act2])

process.nextTick(lambda: printfromprocess("dolor sit"))

process.nextTick(lambda: printfromprocess("amet consectur"))

process.nextTick(lambda: printfromprocess("module02.py exit"))
Esempio n. 8
0
def normalfunction():
    printfromprocess("normalfunction from within the eventloop")
Esempio n. 9
0
async def awaitingasyncfunction2():
    printfromprocess('awaitingasyncfunction2 will wait for 2 seconds')
    await asyncio.sleep(2)
    printfromprocess('awaitingasyncfunction2 done waiting for 2 seconds')
Esempio n. 10
0
async def normalasyncfunction2():
    printfromprocess("normalasyncfunction2 called from within the eventloop")
Esempio n. 11
0
    printfromprocess("normalfunction from within the eventloop")


async def normalasyncfunction1():
    printfromprocess("normalasyncfunction1 called from within the eventloop")


async def normalasyncfunction2():
    printfromprocess("normalasyncfunction2 called from within the eventloop")


async def awaitingasyncfunction1():
    printfromprocess('awaitingasyncfunction1 will wait for 2 seconds')
    await asyncio.sleep(2)
    printfromprocess('awaitingasyncfunction1 done waiting for 2 seconds')


async def awaitingasyncfunction2():
    printfromprocess('awaitingasyncfunction2 will wait for 2 seconds')
    await asyncio.sleep(2)
    printfromprocess('awaitingasyncfunction2 done waiting for 2 seconds')


process.nextTick(lambda: printfromprocess("module01.py init"))
process.nextTick(normalfunction)
process.nextTick(normalasyncfunction1)
process.nextTick(normalasyncfunction2)
process.nextTick([awaitingasyncfunction1, awaitingasyncfunction2])
process.nextTick(normalfunction)
process.nextTick(lambda: printfromprocess("module01.py exit"))