// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS
// file for details. All rights reserved. Use of this source code is governed
// by a BSD-style license that can be found in the LICENSE file.

/// Passive isolate, waits for requests
/// @author a.semenov@unipro.ru

import "dart:isolate";

main(List<String> args, List message) {
  dynamic i = 1;
  SendPort sendPort = message[1];
  ReceivePort receivePort = new ReceivePort();
  receivePort.listen(
     (data) {
        sendPort.send(data);
        // An error that should stop the isolate
        sendPort.send(", " + i);
        sendPort.send("hello");
     }
  );
  message[0].send(receivePort.sendPort);
}
