Skip to content

Allow global thread and process pool executors #106

Description

@suned

Currently each effect is interpreted using its own process and thread pools. It would be preferable to enable the caller to control the lifecycle of these pools. Concretely, we could change the signature of functions that introduce the dependency on a thread or process pool to e.g:

def from_cpu_bound_callable(f: Callable[[R], Either[E, A]]) -> Effect[Intersection[R, HasProcessPool], E, A]: ...

Where HasProcessPool is defined as:

from typing import Protocol


class HasProcessPool(Protocol):
    pool: ProcessPoolExecutor

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions