On Tue, Jan 16, 2018 at 4:37 PM, Antoine Pitrou <solipsis@pitrou.net> wrote:
On Tue, 16 Jan 2018 17:44:14 -0500
Yury Selivanov <yselivanov.ml@gmail.com> wrote:

> Offloading execution to other threads
> -------------------------------------
>
> It is possible to run code in a separate OS thread using a copy
> of the current thread context::
>
>     executor = ThreadPoolExecutor()
>     current_context = contextvars.copy_context()
>
>     executor.submit(
>         lambda: current_context.run(some_function))

Does it also support offloading to a separate process (using
ProcessPoolExecutor in the example above)?  This would require the
Context to support pickling.

I don't think that's a requirement. The transparency between the two different types of executor is mostly misleading anyway -- it's like the old RPC transparency problem, which was never solved IIRC. There are just too many things you need to be aware of before you can successfully offload something to a different process.

--
--Guido van Rossum (python.org/~guido)