[Mesa-dev] [PATCH] ralloc: Use __attribute__((destructor)) instead of atexit(3)
Ian Romanick
idr at freedesktop.org
Wed Sep 9 18:54:24 PDT 2015
On 09/07/2015 06:54 AM, Jose Fonseca wrote:
> On 07/09/15 10:17, Jean-Sébastien Pédron wrote:
>> On 04.09.2015 01:37, Matt Turner wrote:
>>> You need to test for this support in configure.ac. It's as simple as
>>> adding a call to AX_GCC_FUNC_ATTRIBUTE in the existing alphabetized
>>> list and then a little bit of preprocessor in src/util/macros.h.
>>
>> Should the code fallbacks on atexit(3) if the attribute is not
>> supported?
>
> At least on Windows, with MSVC, atexit should be the right thing to do,
> since we statically link MSVC RunTime,
>
>
>> Can I use the HAVE_FUNC_ATTRIBUTE_DESTRUCTOR macro in
>> ralloc.c for this purpose?
>
> For the record, another alternative (way more portable), is you have a
> simple .cpp file with a static destructior:
Arg. :( We used to have code that used this in several places, but that
idiom has gradually been removed. See c61bc6ed (although that was using
a constructor to initialize instead of a destructor to free). I don't
care too much what idiom we pick, but I think we should pick one and
stick with it.
> class AtExit
> {
> public:
> ~AtExit() {
> // do what must be done
> }
> };
>
> AtExit atExit();
>
>
> After all, it seems wrong to use non-standard C to replicate what
> standard C++ can do.
>
>
> Jose
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list