Boost logo

Boost :

Subject: Re: [boost] Any interest in static plugins?
From: Jeremy Pack (rostovpack_at_[hidden])
Date: 2009-12-04 14:10:41


On Fri, Dec 4, 2009 at 10:37 AM, Dave van Soest <dsoest_at_[hidden]> wrote:

> On 12/04/2009 03:11 AM, OvermindDL1 wrote:
>
> Jeremy, your code example also has many similarities with the code in my
> library. So, now I'm interested why you aren't using this approach... What
> kind of troubles do you have with it?

   1. Boost.Extension is targeted at shared libraries linked at run time,
   using functions like dlopen(). This means that in order to use the type of
   static initialization that you do, I'd have to merge the Factory Managers
   from multiple shared libraries when the libraries are loaded, and unmerge
   them when the shared libraries are unloaded. I'd have to track how many
   objects had been created from each shared library to decide whether or not a
   given shared library could be unloaded.
   2. I would have to introduce a dependency on Boost.Thread to guarantee
   thread-safety when these libraries are opened.
   3. The library is currently header-only. This would be lost.
   4. I wanted to allow users the flexibility of either using it in a static
   fashion or not. I could certainly provide wrapper functions that would
   enable this type of static initialization.

For your goal, these issues aren't really a problem.

Jeremy


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk