/**
  * Encode and send the message to the external process
  * will call method $action on this instance in the child context
  * @param string $action
  * @param array $parameters
  * @return mixed
  */
 protected function callOnChild($action, array $parameters = array())
 {
     if ($this->isExternal()) {
         throw new \RuntimeException("Calling ClientThread::CallOnChild from Child context. Did you mean ClientThread::CallOnParent?");
     } else {
         return $this->communicator->SendMessageSync($this->encode($action, $parameters));
     }
 }