예제 #1
0
파일: spawn.py 프로젝트: venkatBala/fiber
def spawn_prepare(fd):
    from_parent_r = os.fdopen(fd, "rb", closefd=False)
    preparation_data = reduction.pickle.load(from_parent_r)

    try:
        _config = preparation_data["fiber_config"]
        init_fiber(preparation_data["name"], **vars(_config))

        multiprocessing.spawn.prepare(preparation_data)
        self = reduction.pickle.load(from_parent_r)
        post_data = reduction.pickle.load(from_parent_r)

    except Exception as e:
        print("error", str(e))
        raise e

    # start watching thread so that when master quits, worker also quits
    td = threading.Thread(target=exit_on_fd_close, args=(fd, ), daemon=True)
    logger.debug("Starting monitoring thread")
    td.start()

    self.ident = post_data["pid"]
    exitcode, err = self._bootstrap()
    if err:
        print("Exception in {}:".format(self))
        print(err)
        return exitcode

    return exitcode
예제 #2
0
def init(**kwargs):
    """
    Initialize Fiber. This function is called when you want to re-initialize
    Fiber with new config values and also re-init loggers.

    :param kwargs: If kwargs is not None, init Fiber system with corresponding
        key/value pairs in kwargs as config keys and values.
    """
    init_fiber(**kwargs)
예제 #3
0
def reset():
    init_fiber()
예제 #4
0
import sys
import os
import fiber.config as fiber_config
import logging
from fiber import context
from fiber.init import init_fiber
from fiber.meta import meta

__version__ = "0.2.1.dev0"

logger = logging.getLogger('fiber')

if sys.platform == 'win32':
    raise NotImplementedError("win32 platform is not supported now")

init_fiber()

if os.environ.get("FIBER_WORKER", None) is None:
    # Only initialize logger when fiber is imported in master process. Worker
    # process will get their logger initialized later.
    # A file based logger could be created, no logging lines after
    # this in this module.
    logger.setLevel(fiber_config.log_level)

if hasattr(sys, 'ps1'):
    _in_interactive_console = True
else:
    _in_interactive_console = False


def reset():