anchor.diff:        }
       }
     }
  -  
  +
     @override
     Future<String> ping() {
       Completer<String> completer = new Completer();
  -    
  +
       int callId = _topCallId;
       _serviceCallCompleters["ping_$callId"] = completer;
       onceIsolateReady.then((_) {
         _port.sendToHost(callId);
       });
       _topCallId += 1;
  -    
  +
       return completer.future;
     }
   
  
positive.code: 
    Stream<ServiceActionEvent> onIsolateMessage;
    Future onceIsolateReady;
    
    _IsolateHandlerSingleThreadImpl() {
       _port.listenFromWorker(_onWorkerMessage);
      onIsolateMessage = _messageController.stream;
      onceIsolateReady = _readyController.stream.first;
      
      services_impl.init(_port);
      
      // The worker is immediately ready to process messages.
      // TODO(rpaquay): Is this correct?
      _readyController..add(null)..close();
  
negative.code:   void sendToHost(dynamic message) {
      _hostStreamController.add(message);
    }
  
    @override
    void listenFromHost(void onData(var message)) {
      _workerStreamController.stream.listen((message) {
        onData(message);
      });
    }
  
    void sendToWorker(dynamic message) {
      _workerStreamController.add(message);
    }
  
    void listenFromWorker(void onData(var message)) {
      _hostStreamController.stream.listen((message) {
        onData(message);
      });
    }
  }
  
  