1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-01-03 04:48:52 -05:00

feat: Stabilize Deno.kill and Deno.Process.kill (#12375)

Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
This commit is contained in:
Ryan Dahl 2021-10-10 09:48:26 -04:00 committed by GitHub
parent ffea0f198c
commit 6ac0337165
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 52 additions and 58 deletions

View file

@ -1956,14 +1956,46 @@ declare namespace Deno {
stderrOutput(): Promise<Uint8Array>;
close(): void;
/** **UNSTABLE**
*
* Send a signal to process. This functionality currently only works on
* Linux and Mac OS.
/** Send a signal to process.
*/
kill(signo: string): void; // TODO(ry): Use Signal type here once made stable.
kill(signo: Signal): void;
}
export type Signal =
| "SIGABRT"
| "SIGALRM"
| "SIGBUS"
| "SIGCHLD"
| "SIGCONT"
| "SIGEMT"
| "SIGFPE"
| "SIGHUP"
| "SIGILL"
| "SIGINFO"
| "SIGINT"
| "SIGIO"
| "SIGKILL"
| "SIGPIPE"
| "SIGPROF"
| "SIGPWR"
| "SIGQUIT"
| "SIGSEGV"
| "SIGSTKFLT"
| "SIGSTOP"
| "SIGSYS"
| "SIGTERM"
| "SIGTRAP"
| "SIGTSTP"
| "SIGTTIN"
| "SIGTTOU"
| "SIGURG"
| "SIGUSR1"
| "SIGUSR2"
| "SIGVTALRM"
| "SIGWINCH"
| "SIGXCPU"
| "SIGXFSZ";
export type ProcessStatus =
| {
success: true;
@ -2481,6 +2513,20 @@ declare namespace Deno {
options?: UpgradeWebSocketOptions,
): WebSocketUpgrade;
/** Send a signal to process under given `pid`.
*
* If `pid` is negative, the signal will be sent to the process group
* identified by `pid`.
*
* const p = Deno.run({
* cmd: ["sleep", "10000"]
* });
*
* Deno.kill(p.pid, "SIGINT");
*
* Requires `allow-run` permission. */
export function kill(pid: number, signo: Signal): void;
/** The type of the resource record.
* Only the listed types are supported currently. */
export type RecordType =

View file

@ -562,41 +562,6 @@ declare namespace Deno {
*/
export function applySourceMap(location: Location): Location;
export type Signal =
| "SIGABRT"
| "SIGALRM"
| "SIGBUS"
| "SIGCHLD"
| "SIGCONT"
| "SIGEMT"
| "SIGFPE"
| "SIGHUP"
| "SIGILL"
| "SIGINFO"
| "SIGINT"
| "SIGIO"
| "SIGKILL"
| "SIGPIPE"
| "SIGPROF"
| "SIGPWR"
| "SIGQUIT"
| "SIGSEGV"
| "SIGSTKFLT"
| "SIGSTOP"
| "SIGSYS"
| "SIGTERM"
| "SIGTRAP"
| "SIGTSTP"
| "SIGTTIN"
| "SIGTTOU"
| "SIGURG"
| "SIGUSR1"
| "SIGUSR2"
| "SIGVTALRM"
| "SIGWINCH"
| "SIGXCPU"
| "SIGXFSZ";
/** **UNSTABLE**: new API, yet to be vetted.
*
* Represents the stream of signals, implements both `AsyncIterator` and
@ -722,21 +687,6 @@ declare namespace Deno {
},
>(opt: T): Process<T>;
/** **UNSTABLE**: Send a signal to process under given `pid`. This
* functionality only works on Linux and Mac OS.
*
* If `pid` is negative, the signal will be sent to the process group
* identified by `pid`.
*
* const p = Deno.run({
* cmd: ["sleep", "10000"]
* });
*
* Deno.kill(p.pid, "SIGINT");
*
* Requires `allow-run` permission. */
export function kill(pid: number, signo: Signal): void;
/** **UNSTABLE**: New API, yet to be vetted. Additional consideration is still
* necessary around the permissions required.
*

View file

@ -121,7 +121,6 @@ unitTest(
cmd: [
Deno.execPath(),
"eval",
"--unstable",
"Deno.kill(Deno.pid, 'SIGKILL')",
],
});

View file

@ -104,6 +104,7 @@
serveHttp: __bootstrap.http.serveHttp,
resolveDns: __bootstrap.net.resolveDns,
upgradeWebSocket: __bootstrap.http.upgradeWebSocket,
kill: __bootstrap.process.kill,
};
__bootstrap.denoNsUnstable = {
@ -111,7 +112,6 @@
Signal: __bootstrap.signals.Signal,
SignalStream: __bootstrap.signals.SignalStream,
emit: __bootstrap.compilerApi.emit,
kill: __bootstrap.process.kill,
setRaw: __bootstrap.tty.setRaw,
consoleSize: __bootstrap.tty.consoleSize,
DiagnosticCategory: __bootstrap.diagnostics.DiagnosticCategory,

View file

@ -309,7 +309,6 @@ fn op_kill(
pid: i32,
signal: String,
) -> Result<(), AnyError> {
super::check_unstable(state, "Deno.kill");
state.borrow_mut::<Permissions>().run.check_all()?;
kill(pid, &signal)?;
Ok(())