diff options
| author | Jakob Kaivo <jkk@ung.org> | 2019-03-02 12:04:38 -0500 |
|---|---|---|
| committer | Jakob Kaivo <jkk@ung.org> | 2019-03-02 12:04:38 -0500 |
| commit | bf1a4a5a88fbbb21dec716896eff8319f2997ce7 (patch) | |
| tree | 4817519c4a9be2ce2ca0512fb14563c9a7f4eb25 /src/setjmp/siglongjmp.c | |
| parent | 4d6a7c78e82718b77d647f6c048b4438bcf1cf65 (diff) | |
add documentation
Diffstat (limited to 'src/setjmp/siglongjmp.c')
| -rw-r--r-- | src/setjmp/siglongjmp.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/setjmp/siglongjmp.c b/src/setjmp/siglongjmp.c index 44b6d6ed..06edc641 100644 --- a/src/setjmp/siglongjmp.c +++ b/src/setjmp/siglongjmp.c @@ -1,10 +1,34 @@ #include <setjmp.h> +#include "signal.h" + +/** restore calling environment with signal mask **/ void siglongjmp(sigjmp_buf env, int val) { - (void)env; (void)val; - /* TODO */ + /* restor signal mask */ + + return longjmp(env, val); } + +/*** +restores the environment, including the saved signal mask (if any), of a +previous call to FUNCTION(sigsetjmp) and continues execution at the location of +the call to FUNCTION(sigsetjmp). + +All objects previously accessible at the time of the call to FUNCTION(sigsetjmp) +have the same values. Non-TYPE(volatile) objects of automatic storage duration +that have changed since the call to FUNCTION(sigsetjmp) have intederminate +values. + +When execution resumes at the point of the original call to FUNCTION(sigsetjmp), +the value specified by ARGUMENT(val) is returned. If 0 is specified, then the +return value is 1. +***/ + /* +UNDEFINED(There was no previous call to FUNCTION(setjmp)) +UNDEFINED(The function containing the previous call to FUNCTION(setjmp) is no longer executing) +UNDEFINED(THIS() is called from a nested signal handler) + POSIX(1) */ |
