1dcdfe824SRobert Mustacchi.\"
2dcdfe824SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3dcdfe824SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4dcdfe824SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5dcdfe824SRobert Mustacchi.\" 1.0 of the CDDL.
6dcdfe824SRobert Mustacchi.\"
7dcdfe824SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8dcdfe824SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9dcdfe824SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10dcdfe824SRobert Mustacchi.\"
11dcdfe824SRobert Mustacchi.\"
12dcdfe824SRobert Mustacchi.\" Copyright 2016 Joyent, Inc.
13dcdfe824SRobert Mustacchi.\"
14dcdfe824SRobert Mustacchi.Dd "Mar 26, 2016"
15dcdfe824SRobert Mustacchi.Dt QUICK_EXIT 3C
16dcdfe824SRobert Mustacchi.Os
17dcdfe824SRobert Mustacchi.Sh NAME
18dcdfe824SRobert Mustacchi.Nm at_quick_exit ,
19dcdfe824SRobert Mustacchi.Nm quick_exit
20dcdfe824SRobert Mustacchi.Nd terminate a running process with minimal teardown
21dcdfe824SRobert Mustacchi.Sh SYNOPSIS
22dcdfe824SRobert Mustacchi.In stdlib.h
23dcdfe824SRobert Mustacchi.Ft int
24dcdfe824SRobert Mustacchi.Fo at_quick_exit
25dcdfe824SRobert Mustacchi.Fa "void (*func)(void)"
26dcdfe824SRobert Mustacchi.Fc
27dcdfe824SRobert Mustacchi.Ft _Noreturn void
28dcdfe824SRobert Mustacchi.Fo quick_exit
29dcdfe824SRobert Mustacchi.Fa "int status"
30dcdfe824SRobert Mustacchi.Fc
31dcdfe824SRobert Mustacchi.Sh DESCRIPTION
32dcdfe824SRobert MustacchiThe
33dcdfe824SRobert Mustacchi.Fn quick_exit
34dcdfe824SRobert Mustacchiand
35dcdfe824SRobert Mustacchi.Fn at_quick_exit
36dcdfe824SRobert Mustacchifunctions provide a veneer around
37dcdfe824SRobert Mustacchi.Xr _Exit 3C
38dcdfe824SRobert Mustacchithat allows for registered functions to be called before terminating.
39dcdfe824SRobert MustacchiLike
40dcdfe824SRobert Mustacchi.Xr _Exit 3C ,
41dcdfe824SRobert Mustacchistandard library termination is not done.
42dcdfe824SRobert Mustacchi.Xr atexit 3C
43dcdfe824SRobert Mustacchifunctions are not called and various standard termination that occurs
44dcdfe824SRobert Mustacchiwhen calling
45dcdfe824SRobert Mustacchi.Xr exit 3C
46dcdfe824SRobert Mustacchimay not occur.
47dcdfe824SRobert Mustacchi.Pp
48dcdfe824SRobert MustacchiFunctions that are registered with
49dcdfe824SRobert Mustacchi.Fn at_quick_exit
50dcdfe824SRobert Mustacchiwill be called in reverse order upon calling
51dcdfe824SRobert Mustacchi.Fn quick_exit .
52dcdfe824SRobert MustacchiFunctions registered with
53dcdfe824SRobert Mustacchi.Fn at_quick_exit
54dcdfe824SRobert Mustacchiwill not be called at any other time. Functions that are registered with
55dcdfe824SRobert Mustacchi.Fn at_quick_exit
56dcdfe824SRobert Mustacchishould not make use of
57dcdfe824SRobert Mustacchi.Xr longjump 3C
58dcdfe824SRobert Mustacchiand related functions.
59dcdfe824SRobert Mustacchi.Pp
60dcdfe824SRobert MustacchiAfter calling all registered functions, the
61dcdfe824SRobert Mustacchi.Fn quick_exit
62dcdfe824SRobert Mustacchifunction will terminate the calling program and its exit status will be
63dcdfe824SRobert Mustacchi.Fa status .
64dcdfe824SRobert Mustacchi.Sh RETURN VALUES
65dcdfe824SRobert MustacchiThe
66dcdfe824SRobert Mustacchi.Fn quick_exit
67dcdfe824SRobert Mustacchifunction does not return.
68dcdfe824SRobert Mustacchi.Pp
69dcdfe824SRobert MustacchiThe
70dcdfe824SRobert Mustacchi.Fn at_quick_exit
71dcdfe824SRobert Mustacchifunction returns
72dcdfe824SRobert Mustacchi.Sy 0
73dcdfe824SRobert Mustacchion success. Otherwise, a non-zero error value is returned to indicate
74dcdfe824SRobert Mustacchifailure.
75dcdfe824SRobert Mustacchi.Sh ERRORS
76dcdfe824SRobert MustacchiThe
77dcdfe824SRobert Mustacchi.Fn at_quick_exit
78dcdfe824SRobert Mustacchifunction may fail if:
79dcdfe824SRobert Mustacchi.Bl -tag -width Er
80dcdfe824SRobert Mustacchi.It Er ENOMEM
81dcdfe824SRobert MustacchiInsufficient storage space is available.
82dcdfe824SRobert Mustacchi.El
83dcdfe824SRobert Mustacchi.Sh INTERFACE STABILITY
84dcdfe824SRobert Mustacchi.Sy Standard
85dcdfe824SRobert Mustacchi.Sh MT-LEVEL
86dcdfe824SRobert Mustacchi.Sy Safe
87dcdfe824SRobert Mustacchi.Sh SEE ALSO
88dcdfe824SRobert Mustacchi.Xr _Exit 3C ,
89dcdfe824SRobert Mustacchi.Xr atexit 3C ,
90dcdfe824SRobert Mustacchi.Xr exit 3C ,
91dcdfe824SRobert Mustacchi.Xr attributes 5 ,
92dcdfe824SRobert Mustacchi.Xr standards 5
93