def service(self): act_evt_map = self.local_endpoint._act_event_map try: act_event = act_evt_map.get_or_create_endpoint_called_event( self.endpoint_making_call,self.event_uuid,self.result_queue) except util.StoppedException: self.result_queue.put( waldoCallResults._StopAlreadyCalledEndpointCallResult()) return import waldoVariableStore evt_ctx = waldoExecutingEvent._ExecutingEventContext( self.local_endpoint._global_var_store, # should not have any sequence local data from an endpoint # call. waldoVariableStore._VariableStore( self.local_endpoint._host_uuid) ) # receiving endpoint must know that this call was an endpoint # call. This is so that it can ensure to make deep copies of # all non-external arguments (including lists,maps, and user # structs). evt_ctx.set_from_endpoint_true() exec_event = waldoExecutingEvent._ExecutingEvent( self.to_exec,act_event,evt_ctx,self.result_queue, *self.args) # don't start as separte thread exec_event.run()
def run(self): if __debug__: logging_info = { 'mod': 'ReceiveEndpointCallAction', 'endpoint_string': self.local_endpoint._endpoint_uuid_str } log_msg = 'Start receive endpoint call action ' + str(self.event_uuid) util.get_logger().info(log_msg,extra=logging_info) act_evt_map = self.local_endpoint._act_event_map act_event = act_evt_map.get_or_create_endpoint_called_event( self.endpoint_making_call,self.event_uuid,self.result_queue) import waldoVariableStore evt_ctx = waldoExecutingEvent._ExecutingEventContext( self.local_endpoint._global_var_store, # should not have any sequence local data from an endpoint # call. waldoVariableStore._VariableStore( self.local_endpoint._host_uuid) ) # receiving endpoint must know that this call was an endpoint # call. This is so that it can ensure to make deep copies of # all non-external arguments (including lists,maps, and user # structs). evt_ctx.set_from_endpoint_true() exec_event = waldoExecutingEvent._ExecutingEvent( self.to_exec,act_event,evt_ctx,self.result_queue, *self.args) exec_event.start() if __debug__: log_msg = 'End receive endpoint call action ' + act_event.str_uuid util.get_logger().info(log_msg,extra=logging_info)