Commit 8d4005c2 authored by David Wilson's avatar David Wilson

fakessh: fix non-master context ID allocation.

parent bd8001d4
...@@ -315,8 +315,9 @@ def _fakessh_main(mitogen_, dest_context_id): ...@@ -315,8 +315,9 @@ def _fakessh_main(mitogen_, dest_context_id):
# Public API. # Public API.
# #
@mitogen.core.takes_econtext
@mitogen.core.takes_router @mitogen.core.takes_router
def run(dest, router, args, deadline=None): def run(dest, router, args, deadline=None, econtext=None):
""" """
Run the command specified by the argument vector `args` such that ``PATH`` Run the command specified by the argument vector `args` such that ``PATH``
searches for SSH by the command will cause its attempt to use SSH to searches for SSH by the command will cause its attempt to use SSH to
...@@ -335,9 +336,12 @@ def run(dest, router, args, deadline=None): ...@@ -335,9 +336,12 @@ def run(dest, router, args, deadline=None):
:returns: :returns:
Exit status of the child process. Exit status of the child process.
""" """
context_id = router.context_id_counter.next() if econtext is not None:
mitogen.master.upgrade_router(econtext)
context_id = router.allocate_id()
fakessh = mitogen.master.Context(router, context_id) fakessh = mitogen.master.Context(router, context_id)
fakessh.name = 'fakessh' fakessh.name = 'fakessh.%d' % (context_id,)
sock1, sock2 = socket.socketpair() sock1, sock2 = socket.socketpair()
mitogen.core.set_cloexec(sock1.fileno()) mitogen.core.set_cloexec(sock1.fileno())
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment