# std: stop exposing anything having to do with ucontext_t · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/36dbe66cf4499e4a8f656bdf4629ec1623b345c1)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 36dbe66cf4499e4a8f656bdf4629ec1623b345c1

Requested commit: 36dbe66cf4499e4a8f656bdf4629ec1623b345c1

Commit: 36dbe66cf4499e4a8f656bdf4629ec1623b345c1

Tree: 64fbea0f74576eba0cbd3acda3f8ab6bcdb43aae

Author: Alex Rønne Petersen

Committer: Alex Rønne Petersen

## Message

```
std: stop exposing anything having to do with ucontext_t

This type is useful for two things:

* Doing non-local control flow with ucontext.h functions.
* Inspecting machine state in a signal handler.

The first use case is not one we support; we no longer expose bindings to those
functions in the standard library. They're also deprecated in POSIX and, as a
result, not available in musl.

The second use case is valid, but is very poorly served by the standard library.
As evidenced by my changes to std.debug.cpu_context.signal_context_t, users will
be better served rolling their own ucontext_t and especially mcontext_t types
which fit their specific situation. Further, these types tend to evolve
frequently as architectures evolve, and the standard library has not done a good
job keeping up, or even providing them for all supported targets.

```

## Parents

- [f33d3a516631be2566116b16fa2f9d5774fa62cc](https://git.cafe/gitcafe/zig/commit/f33d3a516631be2566116b16fa2f9d5774fa62cc?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/36dbe66cf4499e4a8f656bdf4629ec1623b345c1?format=markdown)
