mirror of
https://github.com/NixOS/nix.git
synced 2025-11-19 00:39:37 +01:00
Add rl-next/c-api-recoverable-errors
This commit is contained in:
parent
6bc358ba38
commit
110a9ef105
1 changed files with 23 additions and 0 deletions
23
doc/manual/rl-next/c-api-recoverable-errors.md
Normal file
23
doc/manual/rl-next/c-api-recoverable-errors.md
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
synopsis: "C API: Errors returned from your primops are not treated as recoverable by default"
|
||||||
|
prs: [13930]
|
||||||
|
---
|
||||||
|
|
||||||
|
Nix 2.32 by default remembers the error in the thunk that triggered it.
|
||||||
|
|
||||||
|
Previously the following sequence of events worked:
|
||||||
|
|
||||||
|
1. Have a thunk that invokes a primop that's defined through the C API
|
||||||
|
2. The primop returns an error
|
||||||
|
3. Force the thunk again
|
||||||
|
4. The primop returns a value
|
||||||
|
5. The thunk evaluated successfully
|
||||||
|
|
||||||
|
**Resolution**
|
||||||
|
|
||||||
|
C API consumers that rely on this must change their recoverable error calls:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
-nix_set_err_msg(context, NIX_ERR_*, msg);
|
||||||
|
+nix_set_err_msg(context, NIX_ERR_RECOVERABLE, msg);
|
||||||
|
```
|
||||||
Loading…
Add table
Add a link
Reference in a new issue