blob: fd4e4c366d144e279433120cbc0a72750466ed11 [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import '../base/io.dart';
/// A mixin for tracking additional PIDs that can be shut down at the end of a debug session.
///
/// Adapted from package:dds/src/dap/adapters/mixins.dart to use Flutter's
/// dart:io wrappers.
mixin PidTracker {
/// Process IDs to terminate during shutdown.
///
/// This may be populated with pids from the VM Service to ensure we clean up
/// properly where signals may not be passed through the shell to the
/// underlying VM process.
/// https://github.com/Dart-Code/Dart-Code/issues/907
final Set<int> pidsToTerminate = <int>{};
/// Terminates all processes with the PIDs registered in [pidsToTerminate].
void terminatePids(ProcessSignal signal) {
pidsToTerminate.forEach(signal.send);
}
}