Re: [PATCH] At-exit hook

Mailer <[email protected]>
Newsgroups gmane.lisp.guile.devel
Message-ID <[email protected]>
On Thu, 7 Nov 2024 12:23:08 +0100
Maxime Devos <[email protected]> wrote:
> ‘atexit’ functions are run at ‘exit’. ‘exit’ can be run from signal
> handlers (*). Since the hook runs Scheme code, it could do a lot of
> AC-unsafe things, resulting in problems.
> 
> (*) glibc documentation says ‘exit’ is AC-unsafe, but this is
> unsupported by POSIX AFAICT. OTOH the same applies to even ‘malloc’,
> so likely I’m looking in the wrong places.

I think you meant async-signal-safe (AS-safe).  'exit' is not a-s-s and
cannot be called in a signal handler (for example it can flush buffers)
whereas '_exit' is a-s-s.  Furthermore a registered handler cannot
itself safely call 'exit'.

I believe the main reason that use of 'atexit' or 'on_exit' is
discouraged is that it does not handle abnormal process termination.
(Registered handlers also don't run on termination by '_exit', but that
is usually what you want.)

Chris
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.