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
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)
def reset(): init_fiber()
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():