Skip to content

Commit

Permalink
Remove proc_raise and the signal types and constants.
Browse files Browse the repository at this point in the history
WebAssembly doesn't support signal handling, so these weren't
useful for their main purpose. The one thing you could do with
`proc_raise` was terminate execution with a signal status,
however that's not super useful and even wasi-libc didn't make
use of it in its abort function.
  • Loading branch information
sunfishcode committed Nov 28, 2019
1 parent db73914 commit d07615f
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 308 deletions.
201 changes: 0 additions & 201 deletions phases/ephemeral/docs/wasi_ephemeral_preview.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ modules so that embedders need not implement all of it.
- [`__wasi_path_unlink_file()`](#path_unlink_file)
- [`__wasi_poll_oneoff()`](#poll_oneoff)
- [`__wasi_proc_exit()`](#proc_exit)
- [`__wasi_proc_raise()`](#proc_raise)
- [`__wasi_random_get()`](#random_get)
- [`__wasi_sched_yield()`](#sched_yield)
- [`__wasi_sock_recv()`](#sock_recv)
Expand Down Expand Up @@ -951,18 +950,6 @@ Inputs:

Does not return.

### <a href="#proc_raise" name="proc_raise"></a>`__wasi_proc_raise()`

Send a signal to the process of the calling thread.

Note: This is similar to `raise` in POSIX.

Inputs:

- <a href="#proc_raise.sig" name="proc_raise.sig"></a><code>[\_\_wasi\_signal\_t](#signal) <strong>sig</strong></code>

The signal condition to trigger.

### <a href="#random_get" name="random_get"></a>`__wasi_random_get()`

Write high-quality random data into a buffer.
Expand Down Expand Up @@ -2057,194 +2044,6 @@ defined, it must be set to zero.

Used by [`__wasi_sock_send()`](#sock_send).

### <a href="#signal" name="signal"></a>`__wasi_signal_t` (`uint8_t`)

Signal condition.

Used by [`__wasi_proc_raise()`](#proc_raise).

Possible values:

- <a href="#signal.hup" name="signal.hup"></a>**`__WASI_SIGHUP`**

Hangup.

Action: Terminates the process.

- <a href="#signal.int" name="signal.int"></a>**`__WASI_SIGINT`**

Terminate interrupt signal.

Action: Terminates the process.

- <a href="#signal.quit" name="signal.quit"></a>**`__WASI_SIGQUIT`**

Terminal quit signal.

Action: Terminates the process.

- <a href="#signal.ill" name="signal.ill"></a>**`__WASI_SIGILL`**

Illegal instruction.

Action: Terminates the process.

- <a href="#signal.trap" name="signal.trap"></a>**`__WASI_SIGTRAP`**

Trace/breakpoint trap.

Action: Terminates the process.

- <a href="#signal.abrt" name="signal.abrt"></a>**`__WASI_SIGABRT`**

Process abort signal.

Action: Terminates the process.

- <a href="#signal.bus" name="signal.bus"></a>**`__WASI_SIGBUS`**

Access to an undefined portion of a memory object.

Action: Terminates the process.

- <a href="#signal.fpe" name="signal.fpe"></a>**`__WASI_SIGFPE`**

Erroneous arithmetic operation.

Action: Terminates the process.

- <a href="#signal.kill" name="signal.kill"></a>**`__WASI_SIGKILL`**

Kill.

Action: Terminates the process.

- <a href="#signal.usr1" name="signal.usr1"></a>**`__WASI_SIGUSR1`**

User-defined signal 1.

Action: Terminates the process.

- <a href="#signal.segv" name="signal.segv"></a>**`__WASI_SIGSEGV`**

Invalid memory reference.

Action: Terminates the process.

- <a href="#signal.usr2" name="signal.usr2"></a>**`__WASI_SIGUSR2`**

User-defined signal 2.

Action: Terminates the process.

- <a href="#signal.pipe" name="signal.pipe"></a>**`__WASI_SIGPIPE`**

Write on a pipe with no one to read it.

Action: Ignored.

- <a href="#signal.alrm" name="signal.alrm"></a>**`__WASI_SIGALRM`**

Alarm clock.

Action: Terminates the process.

- <a href="#signal.term" name="signal.term"></a>**`__WASI_SIGTERM`**

Termination signal.

Action: Terminates the process.

- <a href="#signal.chld" name="signal.chld"></a>**`__WASI_SIGCHLD`**

Child process terminated, stopped, or continued.

Action: Ignored.

- <a href="#signal.cont" name="signal.cont"></a>**`__WASI_SIGCONT`**

Continue executing, if stopped.

Action: Continues executing, if stopped.

- <a href="#signal.stop" name="signal.stop"></a>**`__WASI_SIGSTOP`**

Stop executing.

Action: Stops executing.

- <a href="#signal.tstp" name="signal.tstp"></a>**`__WASI_SIGTSTP`**

Terminal stop signal.

Action: Stops executing.

- <a href="#signal.ttin" name="signal.ttin"></a>**`__WASI_SIGTTIN`**

Background process attempting read.

Action: Stops executing.

- <a href="#signal.ttou" name="signal.ttou"></a>**`__WASI_SIGTTOU`**

Background process attempting write.

Action: Stops executing.

- <a href="#signal.urg" name="signal.urg"></a>**`__WASI_SIGURG`**

High bandwidth data is available at a socket.

Action: Ignored.

- <a href="#signal.xcpu" name="signal.xcpu"></a>**`__WASI_SIGXCPU`**

CPU time limit exceeded.

Action: Terminates the process.

- <a href="#signal.xfsz" name="signal.xfsz"></a>**`__WASI_SIGXFSZ`**

File size limit exceeded.

Action: Terminates the process.

- <a href="#signal.vtalrm" name="signal.vtalrm"></a>**`__WASI_SIGVTALRM`**

Virtual timer expired.

Action: Terminates the process.

- <a href="#signal.prof" name="signal.prof"></a>**`__WASI_SIGPROF`**

Profiling timer expired.

Action: Terminates the process.

- <a href="#signal.winch" name="signal.winch"></a>**`__WASI_SIGWINCH`**

Window changed.

Action: Ignored.

- <a href="#signal.poll" name="signal.poll"></a>**`__WASI_SIGPOLL`**

I/O possible.

Action: Terminates the process.

- <a href="#signal.pwr" name="signal.pwr"></a>**`__WASI_SIGPWR`**

Power failure.

Action: Terminates the process.

- <a href="#signal.sys" name="signal.sys"></a>**`__WASI_SIGSYS`**

Bad system call.

Action: Terminates the process.

### <a href="#subclockflags" name="subclockflags"></a>`__wasi_subclockflags_t` (`uint16_t` bitfield)

Flags determining how to interpret the timestamp provided in
Expand Down
99 changes: 0 additions & 99 deletions phases/ephemeral/witx/typenames.witx
Original file line number Diff line number Diff line change
Expand Up @@ -601,105 +601,6 @@
;;; Exit code generated by a process when exiting.
(typename $exitcode u32)

;;; Signal condition.
(typename $signal
(enum u8
;;; No signal. Note that POSIX has special semantics for `kill(pid, 0)`,
;;; so this value is reserved.
$none
;;; Hangup.
;;; Action: Terminates the process.
$hup
;;; Terminate interrupt signal.
;;; Action: Terminates the process.
$int
;;; Terminal quit signal.
;;; Action: Terminates the process.
$quit
;;; Illegal instruction.
;;; Action: Terminates the process.
$ill
;;; Trace/breakpoint trap.
;;; Action: Terminates the process.
$trap
;;; Process abort signal.
;;; Action: Terminates the process.
$abrt
;;; Access to an undefined portion of a memory object.
;;; Action: Terminates the process.
$bus
;;; Erroneous arithmetic operation.
;;; Action: Terminates the process.
$fpe
;;; Kill.
;;; Action: Terminates the process.
$kill
;;; User-defined signal 1.
;;; Action: Terminates the process.
$usr1
;;; Invalid memory reference.
;;; Action: Terminates the process.
$segv
;;; User-defined signal 2.
;;; Action: Terminates the process.
$usr2
;;; Write on a pipe with no one to read it.
;;; Action: Ignored.
$pipe
;;; Alarm clock.
;;; Action: Terminates the process.
$alrm
;;; Termination signal.
;;; Action: Terminates the process.
$term
;;; Child process terminated, stopped, or continued.
;;; Action: Ignored.
$chld
;;; Continue executing, if stopped.
;;; Action: Continues executing, if stopped.
$cont
;;; Stop executing.
;;; Action: Stops executing.
$stop
;;; Terminal stop signal.
;;; Action: Stops executing.
$tstp
;;; Background process attempting read.
;;; Action: Stops executing.
$ttin
;;; Background process attempting write.
;;; Action: Stops executing.
$ttou
;;; High bandwidth data is available at a socket.
;;; Action: Ignored.
$urg
;;; CPU time limit exceeded.
;;; Action: Terminates the process.
$xcpu
;;; File size limit exceeded.
;;; Action: Terminates the process.
$xfsz
;;; Virtual timer expired.
;;; Action: Terminates the process.
$vtalrm
;;; Profiling timer expired.
;;; Action: Terminates the process.
$prof
;;; Window changed.
;;; Action: Ignored.
$winch
;;; I/O possible.
;;; Action: Terminates the process.
$poll
;;; Power failure.
;;; Action: Terminates the process.
$pwr
;;; Bad system call.
;;; Action: Terminates the process.
$sys
)
)

;;; Flags provided to `sock_recv`.
(typename $riflags
(flags u16
Expand Down
8 changes: 0 additions & 8 deletions phases/ephemeral/witx/wasi_ephemeral_preview.witx
Original file line number Diff line number Diff line change
Expand Up @@ -463,14 +463,6 @@
(param $rval $exitcode)
)

;;; Send a signal to the process of the calling thread.
;;; Note: This is similar to `raise` in POSIX.
(@interface func (export "proc_raise")
;;; The signal condition to trigger.
(param $sig $signal)
(result $error $errno)
)

;;; Temporarily yield execution of the calling thread.
;;; Note: This is similar to `sched_yield` in POSIX.
(@interface func (export "sched_yield")
Expand Down

1 comment on commit d07615f

@mash-graz
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please rethink this commit! => see: #166

Please sign in to comment.