Source code for proxy.core.work.delegate

# -*- coding: utf-8 -*-
"""
    proxy.py
    ~~~~~~~~
    ⚡⚡⚡ Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on
    Network monitoring, controls & Application development, testing, debugging.

    :copyright: (c) 2013-present by Abhinav Singh and contributors.
    :license: BSD, see LICENSE for more details.
"""
from typing import TYPE_CHECKING, Optional
from multiprocessing.reduction import send_handle


if TYPE_CHECKING:   # pragma: no cover
    import socket
    import multiprocessing
    from multiprocessing import connection

    from ...common.types import HostPort


[docs]def delegate_work_to_pool( worker_pid: int, work_queue: 'connection.Connection', work_lock: 'multiprocessing.synchronize.Lock', conn: 'socket.socket', addr: Optional['HostPort'], unix_socket_path: Optional[str] = None, ) -> None: """Utility method to delegate a work to threadless executor pool.""" with work_lock: # Accepted client address is empty string for # unix socket domain, avoid sending empty string # for optimization. if not unix_socket_path: work_queue.send(addr) send_handle( work_queue, conn.fileno(), worker_pid, ) conn.close()