[Clam-devel] COMMIT 11822 - Re: Faust support - plugins dynamic reloading
Natanael Olaiz
nolaiz at gmail.com
Sun Aug 10 05:33:09 PDT 2008
BTW, that is setting the 'currentLibrary' in the main
RunTimeLibraryLoader::LoadLibrariesFromPath.
El 08/10/2008 09:20 AM, Natanael Olaiz escribió:
> El 08/10/2008 08:50 AM, David García Garzón escribió:
>> What do you mean by 'static automatic loading'? Why it doesn't work?
>>
>> Plugins as the libraries are based on static objects that get
>> registered on load automaticaly (Registrators). I see hard not to
>> rely on that system. If you are talking about the loader that loads
>> the libraries we could have some flexibility.
> Yes, I'm talking about dllLoader. With that we have no control of when
> is loaded, and the 'currentLibrary' is set to the first plugin a lot
> of registrators before the itself plugin ones.
>
>> Of course, i would prefer do all that as is done now. It depends on
>> the concrete problem you are facing, so, i would like you to give me
>> more details.
>>
>> David.
>>
>>
>> On Diumenge 10 Agost 2008, Natanael Olaiz wrote:
>>
>>> David: could I change the 'static' automatic loading of clam plugins to
>>> one like the faust-ladspa? The initialization of the static keeps
>>> opened
>>> the libraries on background a lot of time, making that your idea
>>> doesn't
>>> work.... Loading specifically on main.cxx (NE) seems to be working...
>>>
>>> Regards,
>>> Natanael.
>>>
>>> El 08/05/2008 02:45 PM, David García Garzón escribió:
>>>
>>>> El Tuesday 05 August 2008 09:31:44 Natanael Olaiz va escriure:
>>>>
>>>>> El 08/04/2008 07:12 AM, David García Garzón escribió:
>>>>>
>>>>>> [...]
>>>>>> My suggestion:
>>>>>> * First move all dl_ calls to the base RunTimeLibraryLoader
>>>>>> primitives
>>>>>> (see LoadLibraryError and FullyLoadLibrary) so that we can
>>>>>> encapsulate
>>>>>> the platform dependant bits.
>>>>>> * Add in the same class some static structure that holds the list of
>>>>>> libraries.
>>>>>> * Add also a static state that holds the currently loading
>>>>>> library and
>>>>>> set it and unset it when appropiate.
>>>>>> * When registering a factory entry check that state and if set,
>>>>>> populate the structure or just add some metadata.
>>>>>> * The factory registrator destructor should remove the processing
>>>>>> type
>>>>>> from the factory (this should be TDD) in order to allow unloading
>>>>>> the
>>>>>> library.
>>>>>>
>>>>>> I am not sure whether this should work. But, anyway, be carefull,
>>>>>> remember that we are in release!!! The plugin system cannot be
>>>>>> broken!
>>>>>>
>>>>> David: you was totally right. Trying to do just a "simple
>>>>> regenerating
>>>>> of all plugins", I understand your suggestions reasons.
>>>>>
>>>>> Do you think that is safer to keep that out of the release? For now I
>>>>> prefer to release as is (and maybe the same for the ladspa compiled
>>>>> networks), like a workaround... Is not totally safe, but the faust
>>>>> reloader works for the user, and I could continue this after the
>>>>> release
>>>>> and focus my work on subnetworks.
>>>>>
>>>>>
>>>>> BTW, I apologize for break up the loading of clam plugins on the
>>>>> SVN for
>>>>> a few hours. :-/
>>>>>
>>>> Keep developing, but just be extra careful, i will send a pencils
>>>> up for
>>>> the release before starting generating the packages. just, if you do a
>>>> commit you are not sure that is going to be valid, think twice and
>>>> warn
>>>> us.
>>>>
>>>> David.
>>>>
>>
>>
>>
>>
>
>
More information about the clam-devel
mailing list