docstr: Process a message sent from some client.
docstr_tok: ["Process","a","message","sent","from","some","client","."]
code: def _process_msg(self, client, state, reward, isOver):
      """
      Process a message sent from some client.
      """
      # in the first message, only state is valid,
      # reward&isOver should be discarded
      if len(client.memory) > 0:
          client.memory[-1].reward = reward
          if isOver:
              # should clear client's memory and put to queue
              self._parse_memory(0, client, True)
          else:
              if len(client.memory) == LOCAL_TIME_MAX + 1:
                  R = client.memory[-1].value
                  self._parse_memory(R, client, False)
      # feed state and return action
      self._on_state(state, client)
  
imports: import argparse
  import cv2
  import gym
  import multiprocessing
  import numpy
  import os
  import sys
  import uuid
  import tensorflow
  from six.moves import queue
  from concurrent import futures
  from tensorpack import *
  from tensorpack.tfutils.gradproc import MapGradient, SummaryGradient
  from tensorpack.utils.concurrency import ensure_proc_terminate, start_proc_mask_signal
  from tensorpack.utils.gpu import get_num_gpu
  from tensorpack.utils.serialize import dumps
  from atari_wrapper import FireResetEnv, FrameStack, LimitLength, MapState
  from common import Evaluator, eval_model_multithread, play_n_episodes
  from simulator import SimulatorMaster, SimulatorProcess, TransitionExperience
label_desc: Use image node_id 5 for calling the MySimulatorMaster obj's underlying member method code with example usage: obj._process_msg(client, state, reward, isOver) without return types