10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | |
def __init__(self, gateway): |
self.channel = gateway.remote_exec(''' |
from py.magic import greenlet |
glob = {"greenlet": greenlet} |
gids = {} |
while True: |
key, code, args = channel.receive() |
if args is not None: |
if code is not None: |
def run(code=code): |
exec code in glob, {} |
gids[key] = greenlet(run) |
result = gids[key].switch(*args) |
channel.send(result) |
else: |
del gids[key] |
-> ''') | |