Example #1
0
def _function_handler(function, args, kwargs, pipe):
    """Runs the actual function in separate process and returns its result."""
    signal.signal(signal.SIGINT, signal.SIG_IGN)

    result = process_execute(function, *args, **kwargs)

    send_result(pipe, result)
Example #2
0
def _function_handler(function, args, kwargs, pipe):
    """Runs the actual function in separate process and returns its result."""
    signal.signal(signal.SIGINT, signal.SIG_IGN)

    result = process_execute(function, *args, **kwargs)

    send_result(pipe, result)
Example #3
0
def worker_process(params, channel):
    """The worker process routines."""

    signal.signal(signal.SIGINT, signal.SIG_IGN)
    signal.signal(signal.SIGTERM, lambda signum, frame: _exit(0))

    if params.initializer is not None:
        if not run_initializer(params.initializer, params.initargs):
            _exit(1)

    # store children pids which may start together with initializer
    init_pids = [child.pid for child in _proc_children()]

    try:
        for task in worker_get_next_task(channel, params.max_tasks):
            payload = task.payload
            result = process_execute(
                payload.function, *payload.args, **payload.kwargs)
            send_result(channel, Result(task.id, result))

            for child in _proc_children():
                # kill child process if it wasn't finished together with task
                if child.pid not in init_pids:
                    child.kill()

    except (EnvironmentError, OSError, RuntimeError) as error:
        _exit(error.errno if error.errno else 1)
    except EOFError:
        _exit(0)
Example #4
0
def worker_process(params, channel):
    """The worker process routines."""
    signal(SIGINT, SIG_IGN)

    if params.initializer is not None:
        if not run_initializer(params.initializer, params.initargs):
            os._exit(1)

    try:
        for task in worker_get_next_task(channel, params.max_tasks):
            payload = task.payload
            result = execute(payload.function, *payload.args, **payload.kwargs)
            send_result(channel, Result(task.id, result))
    except (EnvironmentError, OSError) as error:
        os._exit(error.errno if error.errno else 1)
    except EOFError:
        os._exit(0)
Example #5
0
def worker_process(params, channel):
    """The worker process routines."""
    signal(SIGINT, SIG_IGN)

    if params.initializer is not None:
        if not run_initializer(params.initializer, params.initargs):
            os._exit(1)

    try:
        for task in worker_get_next_task(channel, params.max_tasks):
            payload = task.payload
            result = execute(payload.function, *payload.args, **payload.kwargs)
            send_result(channel, Result(task.id, result))
    except (EnvironmentError, OSError) as error:
        os._exit(error.errno if error.errno else 1)
    except EOFError:
        os._exit(0)