blob: a5568b1e891eac3968bd820263d985e990a63270 [file] [log] [blame]
// Copyright (c) 2011, 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.
/// @assertion Spawning an isolate is accomplished via what is syntactically
/// an ordinary library call, invoking one of the functions spawnUri() or
/// spawn() defined in the dart:isolate library.
/// However, such calls have the semantic effect of creating a new isolate
/// with its own memory and thread of control.
/// @description Checks that a new isolate created with spawn() has its own
/// memory which is not shared with other isolates, using a top-level variable
/// to showcase it.
/// @author rodionov
/// @reviewer kaigorodov
import 'dart:isolate';
import '../../../Utils/expect.dart';
var expectedMessage="message";
void iMain(SendPort replyPort) {
replyPort.send(expectedMessage);
}
var receivePort = new ReceivePort();
void receiveHandler(var message) {
Expect.equals(expectedMessage, message);
receivePort.close();
asyncEnd();
}
main() {
asyncStart();
Isolate.spawn(iMain, receivePort.sendPort);
receivePort.listen(receiveHandler);
}