[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