call site 1 for execnet.PopenGateway.remote_exec
c-extension/greenlet/test_remote.py - line 50
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
   def test_rgreenlet():
       gw = py.execnet.PopenGateway()
->     bunch = RGreenletBunch(gw)
       g = bunch.greenlet('''
           x = greenlet.getcurrent().parent.switch(42)
           y = greenlet.getcurrent().parent.switch(x+1)
           greenlet.getcurrent().parent.switch(y+2)
           import os
           greenlet.getcurrent().parent.switch(os.getpid())
       ''')
       result = g.switch()
       assert result == 42
       result = g.switch(102)
       assert result == 103
       result = g.switch(-93)
       assert result == -91
       import os
       result = g.switch()
       assert result != os.getpid()
c-extension/greenlet/test_remote.py - line 26
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]
->         ''')