docs: def _executor(self, host):
          ''' handler for multiprocessing library '''
  
          try:
              exec_rc = self._executor_internal(host)
              #if type(exec_rc) != ReturnData and type(exec_rc) != ansible.runner.return_data.ReturnData:
              #    raise Exception("unexpected return type: %s" % type(exec_rc))
              # redundant, right?
              if not exec_rc.comm_ok:
                  self.callbacks.on_unreachable(host, exec_rc.result)
              return exec_rc
          except errors.AnsibleError, ae:
              msg = str(ae)
              self.callbacks.on_unreachable(host, msg)
              return ReturnData(host=host, comm_ok=False, result=dict(failed=True, msg=msg))
          except Exception:
              msg = traceback.format_exc()
              self.callbacks.on_unreachable(host, msg)
              return ReturnData(host=host, comm_ok=False, result=dict(failed=True, msg=msg))