| OLD | NEW | 
|   1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file |   1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 
|   2 // for details. All rights reserved. Use of this source code is governed by a |   2 // for details. All rights reserved. Use of this source code is governed by a | 
|   3 // BSD-style license that can be found in the LICENSE file. |   3 // BSD-style license that can be found in the LICENSE file. | 
|   4  |   4  | 
|   5 import 'dart:io'; |   5 import 'dart:io'; | 
|   6 import 'dart:isolate'; |   6 import 'dart:isolate'; | 
|   7  |   7  | 
|   8 main() { |   8 main() { | 
|   9   // Open a port to make the script hang. |   9   // Open a port to make the script hang. | 
|  10   var port = new ReceivePort(); |  10   var port = new ReceivePort(); | 
|  11   // Start sub-process when receiving data. |  11   // Start sub-process when receiving data. | 
|  12   var subscription; |  12   var subscription; | 
|  13   subscription = stdin.listen((data) { |  13   subscription = stdin.listen((data) { | 
|  14     var options = new Options(); |  14     Process.start(Platform.executable, [Platform.script]).then((p) { | 
|  15     Process.start(options.executable, [options.script]).then((p) { |  | 
|  16       p.stdout.listen((_) { }); |  15       p.stdout.listen((_) { }); | 
|  17       p.stderr.listen((_) { }); |  16       p.stderr.listen((_) { }); | 
|  18       // When receiving data again, kill sub-process and exit. |  17       // When receiving data again, kill sub-process and exit. | 
|  19       subscription.onData((data) { |  18       subscription.onData((data) { | 
|  20         p.kill(); |  19         p.kill(); | 
|  21         p.exitCode.then((_) => exit(0)); |  20         p.exitCode.then((_) => exit(0)); | 
|  22       }); |  21       }); | 
|  23       // Close stdout. If handles are incorrectly inherited this will |  22       // Close stdout. If handles are incorrectly inherited this will | 
|  24       // not actually close stdout and the test will hang. |  23       // not actually close stdout and the test will hang. | 
|  25       stdout.close(); |  24       stdout.close(); | 
|  26     }); |  25     }); | 
|  27   }); |  26   }); | 
|  28 } |  27 } | 
| OLD | NEW |