examples: use Router.myself() in the_basics.py

issue510
David Wilson 6 years ago
parent 6713b90acc
commit 37783731d6

@ -168,17 +168,19 @@ def work_on_machine(context):
# child context from any more privileged context. # child context from any more privileged context.
file_service.register('/etc/passwd') file_service.register('/etc/passwd')
# To avoid hard-wiring streamy_download_file() below, we want to pass it a
# Context object that hosts the file service it is downloading from.
# Mitogen has no nice public API for getting a Context object that means
# "this process" yet, so we hack it here.
myself = mitogen.core.Context(context.router, mitogen.context_id)
# Now call our wrapper function that knows how to handle the transfer. In a # Now call our wrapper function that knows how to handle the transfer. In a
# real app, this wrapper might also set ownership/modes or do any other # real app, this wrapper might also set ownership/modes or do any other
# app-specific stuff relating to the file that was transferred. # app-specific stuff relating to the file that was transferred.
print("Streamy upload /etc/passwd: remote result: %s" % ( print("Streamy upload /etc/passwd: remote result: %s" % (
context.call(streamy_download_file, myself, '/etc/passwd'), context.call(
streamy_download_file,
# To avoid hard-wiring streamy_download_file(), we want to pass it
# a Context object that hosts the file service it should request
# files from. Router.myself() returns a Context referring to this
# process.
context=router.myself(),
path='/etc/passwd',
),
)) ))
# Shut down the pool now we're done with it, else app will hang at exit. # Shut down the pool now we're done with it, else app will hang at exit.

Loading…
Cancel
Save