mit-krb5 thread support: thread-specific data

Ken Raeburn raeburn at MIT.EDU
Tue Apr 6 17:40:35 EDT 2004


I wrote:
> On Tuesday, Apr 6, 2004, at 12:36 US/Eastern, Sam Hartman wrote:
>> There is no exported finalization interface on OSX.  It has one for
>> C++, which we cannot use, but that's all.
>
> static void foo(void) __attribute__((destructor));
>
> It works for a statically linked program.  It works in a .dylib
> library linked into the program.
>
> I haven't tested with modules dynamically loaded during the running of
> the program, because I haven't found docs on how to do that yet.

Dynamically loading a bundle with NSLinkModule, and unloading it with
NSUnLinkModule, seems to support this as well.

It appears that Apple has also added
  #pragma CALL_ON_LOAD
and
  #pragma CALL_ON_UNLOAD
that look like they should do the same thing as the gcc constructor
and destructor attributes.  (And they seem to DTRT in my tests.)

I'm doing my testing on 10.2, I hope they haven't broken anything in
this department in 10.3...

Ken


More information about the krbdev mailing list