Protect CFBundle calls with mutexes
authorAlexandra Ellwood <lxs@mit.edu>
Fri, 21 Mar 2008 19:04:40 +0000 (19:04 +0000)
committerAlexandra Ellwood <lxs@mit.edu>
Fri, 21 Mar 2008 19:04:40 +0000 (19:04 +0000)
commitcb44e7b91175854d3ca668ec043a48f02b2c37e8
tree5828743390bb17471f753cad02a87fedacd34e0c
parent858c809105b5d66f1b2c8b2d3c305216a594e19c
Protect CFBundle calls with mutexes

CFBundles are refcounted and the recounts are not threadsafe.
Protect CFBundles used for loading bundled plugins with a
mutex to prevent crashes when multiple threads are loading
and unloading the same plugin.

As part of this we use thread-safe dlopen/dlsym/dlclose
for the actual loading and unloading and just use CFBundle
to get the path to the actual executable.  This reduces
the number of places we need to wrap CFBundles with mutexes
and the amount of Mac-specific code in the plugin code.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20285 dc483132-0cff-0310-8789-dd5450dbe970
src/util/support/plugins.c