// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.process.lifecycle;

protocol Lifecycle {
    /// The process must clean up its state in preparation for termination, and
    /// must close the channel hosting the `Lifecycle` protocol when it is
    /// ready to be terminated. At the discretion of the system the process may
    /// be terminated before it closes the `Lifecycle` channel. The process may
    /// exit when it is ready.
    Stop();
};
