| Index: runtime/bin/process_patch.dart
|
| diff --git a/runtime/bin/process_patch.dart b/runtime/bin/process_patch.dart
|
| index b83ec1b60114c10cee1aa3ef05972e036e39937d..e0e8fc6e237d21c632eb4158506f848ec3c7d11d 100644
|
| --- a/runtime/bin/process_patch.dart
|
| +++ b/runtime/bin/process_patch.dart
|
| @@ -71,77 +71,12 @@ patch class Process {
|
| }
|
|
|
|
|
| -List<_SignalController> _signalControllers = new List(32);
|
| -
|
| -
|
| -class _SignalController {
|
| - final ProcessSignal signal;
|
| -
|
| - StreamController _controller;
|
| - var _id;
|
| -
|
| - _SignalController(this.signal) {
|
| - _controller = new StreamController.broadcast(
|
| - onListen: _listen,
|
| - onCancel: _cancel);
|
| - }
|
| -
|
| - Stream<ProcessSignal> get stream => _controller.stream;
|
| -
|
| - void _listen() {
|
| - var id = _setSignalHandler(signal._signalNumber);
|
| - if (id is! int) {
|
| - _controller.addError(
|
| - new SignalException("Failed to listen for $signal", id));
|
| - return;
|
| - }
|
| - _id = id;
|
| - var socket = new _RawSocket(new _NativeSocket.watch(id));
|
| - socket.listen((event) {
|
| - if (event == RawSocketEvent.READ) {
|
| - var bytes = socket.read();
|
| - for (int i = 0; i < bytes.length; i++) {
|
| - _controller.add(signal);
|
| - }
|
| - }
|
| - });
|
| - }
|
| -
|
| - void _cancel() {
|
| - if (_id != null) {
|
| - _clearSignalHandler(signal._signalNumber);
|
| - _id = null;
|
| - }
|
| - }
|
| -
|
| - /* patch */ static int _setSignalHandler(int signal)
|
| - native "Process_SetSignalHandler";
|
| - /* patch */ static int _clearSignalHandler(int signal)
|
| - native "Process_ClearSignalHandler";
|
| -}
|
| -
|
| -
|
| patch class _ProcessUtils {
|
| /* patch */ static void _exit(int status) native "Process_Exit";
|
| /* patch */ static void _setExitCode(int status)
|
| native "Process_SetExitCode";
|
| /* patch */ static void _sleep(int millis) native "Process_Sleep";
|
| /* patch */ static int _pid(Process process) native "Process_Pid";
|
| - /* patch */ static Stream<ProcessSignal> _watchSignal(ProcessSignal signal) {
|
| - if (signal != ProcessSignal.SIGHUP &&
|
| - signal != ProcessSignal.SIGINT &&
|
| - (Platform.isWindows ||
|
| - (signal != ProcessSignal.SIGUSR1 &&
|
| - signal != ProcessSignal.SIGUSR2 &&
|
| - signal != ProcessSignal.SIGWINCH))) {
|
| - throw new SignalException(
|
| - "Listening for signal $signal is not supported");
|
| - }
|
| - if (_signalControllers[signal._signalNumber] == null) {
|
| - _signalControllers[signal._signalNumber] = new _SignalController(signal);
|
| - }
|
| - return _signalControllers[signal._signalNumber].stream;
|
| - }
|
| }
|
|
|
|
|
|
|