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()