_U_DYN_CANCEL(3libunwind)
π _U_DYN_CANCEL β cancel unwind-info for dynamically generated code π
okay bestie, welcome to the libunwind corner of the manual pages (it's 3libunwind, iykyk) and today we're talking about _U_dyn_cancel π
β¨ NAME β¨
_U_dyn_cancel β cancel unwind-info for dynamically generated code π¦
πΈ SYNOPSIS πΈ
#include <libunwind.h>
void _U_dyn_cancel(unw_dyn_info_t *di);
π DESCRIPTION π
So like, the _U_dyn_cancel() routine cancels the registration of the unwind info for a dynamically generated procedure. That's the whole vibe. You're telling libunwind "bestie, we're done here, take it off the books" π
The argument di is the pointer to the unw_dyn_info_t structure that describes the procedure's unwind-info. That's your pointer, the one describing the thing, don't lose it π
And here's the iconic part: the _U_dyn_cancel() routine is guaranteed to execute in constant time β but only in the absence of contention from concurrent calls to _U_dyn_register() or _U_dyn_cancel(). No cap, that's the actual guarantee, and it's giving main character energy β
π«Ά fr fr, remember that little parenthetical: constant time only holds when nobody else is out here hammering_U_dyn_register()or_U_dyn_cancel()at the same time. Concurrent calls = contention = not the chill constant-time moment you wanted.
π THREAD AND SIGNAL SAFETY π
_U_dyn_cancel()is thread safe β- but it is not safe to use from a signal handler π
so go ahead and call it from your threads, just not from inside a signal handler, okay? that's the rule, periodt π
π¦ SEE ALSO π¦
π AUTHOR π
David Mosberger-Tang
- Email:
dmosberger@gmail.com - WWW:
http://www.nongnu.org/libunwind/
and that's the whole page bestie, no crumbs left π this lil slice of the Programming Library is dated 29 August 2023, and yes the original header said _U_DYN_CANCEL(3libunwind) and the footer said the same β consider yourself fully briefed πβ¨ππ¦πΈ
π¦ where this page comes from
- alpine 3.22: libunwind-doc 1.8.1-r0 Β· MIT
- alpine 3.23: libunwind-doc 1.8.1-r0 Β· MIT
- alpine 3.24: libunwind-doc 1.8.3-r0 Β· MIT
- arch rolling: libunwind 1.8.3-1 Β· MIT
- epel 10: libunwind-devel 1.8.0-4.el10_0 Β· MIT
- epel 9: libunwind-devel 1.8.0-4.el9 Β· MIT
- fedora 43: libunwind-devel 1.8.1-3.fc43 Β· MIT
- fedora 43: libunwind-devel 1.8.1-3.fc43 Β· MIT
- fedora 43: libunwind-devel 1.8.3-4.fc43 Β· MIT
- fedora 43: libunwind-devel 1.8.3-4.fc43 Β· MIT
- fedora 44: libunwind-devel 1.8.3-1.fc44 Β· MIT
- fedora 44: libunwind-devel 1.8.3-1.fc44 Β· MIT
- fedora 44: libunwind-devel 1.8.3-4.fc44 Β· MIT
- fedora 44: libunwind-devel 1.8.3-4.fc44 Β· MIT
- nixpkgs unstable: libunwind 1.8.3-devman
- opensuse-leap 16.0: libunwind-devel 1.8.1-160000.2.2 Β· MIT
- opensuse-leap 16.0: libunwind-devel 1.8.1-160000.2.2 Β· MIT
- opensuse-leap 16.0: libunwind-devel 1.8.1-160000.2.2 Β· MIT
- opensuse-leap 16.0: libunwind-devel 1.8.1-160000.2.2 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms