Beispiel #1
0
    def __init__(self):
        """Initialize an NWS service."""

        # keep a list of the protocol objects that we've created
        self.protocols = {}
        self.__protokey = 0

        self.__tmp_filename = None
        self.ws_basename = None

        # Create default space
        default_ext_name = '__default'
        default_space = WorkSpace(default_ext_name)
        default_space._set_owner_info('[system]', True, None)
        default_int_name = default_ext_name, 0
        default_space.internal_name = default_int_name

        self.__ext_to_int_ws_name = {
                default_ext_name : default_int_name
        }
        self.spaces = {
                default_int_name : default_space
        }

        self.__ws_counter = 1
    def __init__(self, name):
        WorkSpace.__init__(self, name)

        # Initialize shutdown machinery
        self.is_shutting_down = False
        self.create_standard_var('bye', 'fifo', hidden=True)

        # Monitoring
        self.agent_tracker = AgentTracker()
        self.scoreboard = Scoreboard()
        self.__init_monitoring()

        # Initialize logging
        self.__init_logging()

        # Job id
        self.__results = ResultQueue()

        # Prepare for sleigh plugin version identification
        self.__init_version_info()

        # Prepare for sentinel keep-alive messages
        self.__sentinels = SentinelTracker()
        self.__blocked_sentinels = []
        self.__init_sentinel_keepalive()

        # Prepare for worker/Sentinel registration
        self.__registration = WorkerRegistration()
        self.__init_worker_reg_variables()

        # Prepare the grace period
        self.__grace_period_ended = False

        # Prepare the join phase machinery
        self.__join_phase = JoinPhaseTracker(self.__registration)
        self.__init_join_phase()

        # Prepare the task queues
        self.__task_queue = TaskQueue()
        self.__task_by_worker = {}
        self.__task_waiters = TaskWaiters(self)
        self.__result_waiters = ResultWaiters(self)
        self.__init_task_queue()
        
        # Prepare to generate fixedarg IDs
        self.__init_fixedarg_id_gen()