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

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

>> [perl objects]
>>
>>> Yes, but perl objects are going to be cleaned up (or at least, any with
>>> DESTROY methods are going to get it called) before then, so that's somewhat
>>> a red herring.
>>>
>>> But possibly also a solution - anything allocated in BOOT that is stashed
>>> inside an object will get that object's destroy method called soon after
>>> END time, with a live interpreter.
>> I don't create any object in my XS module, it has a pure functional
>> interface. Is there anything like a destroy function instead of a
>> destroy method?
> 
> If creating objects disturbs you, then think of it as creating a
> blessed reference. :)

;-)

> In the past, I have created a dummy object for more or less this
> purpose. [...]
> 
>   our $__WEAREALLGONNADIE = bless {}, 'My::Package::Cleanup';
>   sub My::Package:Cleanup::DESTROY {
>     cleanup_function_written_in_C();
>   }

I think I was looking for something like this.

> [the scary global destruction phase]

> But if that bothers you, why aren't you just using an END block again?

I'm just looking for possibilities since I don't find anything about it
in the docs.

> Although this worries me: "Is there a common practice for cleaning up
> or do people just trust the OS to free everything when the process
> exits?" together with "Or is the current practice to write an XS
> function that e.g. frees the memory allocate at BOOT..."
> 
> If you don't trust the OS to free up allocated memory, you are going
> to go insane for no useful reason. In what way would that memory be
> allocated if the process no longer exists? There's no place to put it.

The memory allocation was just an example. I've been brought up with the
principle to close a door when I opened it. So I like to close files,
free memory etc.

[...]

> The only reason I know of to explicitly
> deallocate memory when you are certain a process is dying anyway is to
> make it easier to track down true memory leaks without the
> distractions of spurious reports. There's also an aesthetic argument,

I'm in favour of aestethics, then.

> but it's less persuasive when you realize you're sacrificing
> efficiency. Why erase the writing on a piece of paper before throwing
> it in the fire?

Burn, baby, burn! :-9

-- 
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

                                                                  DFN-PKI
                                                  https://www.pki.dfn.de/
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.