Re: Calling call_atexit() to clean up stuff initialized in BOOT

[email protected] (Gregor Goldbach)
Newsgroups perl.xs
Message-ID <[email protected]>
muppet wrote:

>> I understand initialization of an XS module may be modified using BOOT.
>> However, there seems to be no counterpart of BOOT. How do I e.g. free
>> memory I allocated in BOOT?
[..]
>> Or is the current practice to write an XS function that e.g. frees the
>> memory allocate at BOOT and call it in an END handler in the module's
>> Perl code?

> If your BOOT code creates perl objects that need to be cleaned up, or
> hangs on to anything that depends on perl objects, then atexit() is too
> late.  atexit() handlers get called after main() returns, and by that
> time, the interpreter has already shut down.

I don't want to call atexit(), but call call_atexit() :-). It's called
by DynaLoader (that's how I stumbled across it) and not documented in
perlapi. It's in perl.c (at least in the sources of the Perl we use on
the production systems).

> An END block would be a cleaner, more general solution, IMO, because you
> don't have to worry about your C teardown eventually trying to call back
> into a dead interpreter.

Is there a common practice for cleaning up or do people just trust the
OS to free everything when the process exits? ;-)

-- 
Dipl.-Inform. Gregor Goldbach (PKI Team)
Phone: +49 40 808077-621 Fax: +49 40 808077-556 Mail:[email protected]

DFN-CERT Services GmbH, https://www.dfn-cert.de, Phone  +49 40 808077-555
Sitz / Register: Hamburg, AG Hamburg, HRB 88805, Ust-IdNr.:  DE 232129737
Sachsenstraße 5,  20097 Hamburg/Germany, CEO: Dr. Klaus-Peter Kossakowski

                       16. DFN-Workshop Sicherheit in vernetzten Systemen
                                          https://www.dfn-cert.de/ws2009/
smime.p7s (application/x-pkcs7-signature, 5.7 KB) - not displayed
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.