On Monday 05 November 2007, Nedko Arnaudov wrote:
Purpose of this LV2 extension is to standardize
realtime safe
allocations in a plugin. Plan is, host to provide functions that
plugin can call. Pointers to functions are provided through host
feature. Only memory pool (fixed chunk size) functionality is
defined.
Attached is early draft of the header. Doxygen generated from it
documentation is available at:
http://svn.gna.org/viewcvs/*checkout*/lv2dynparam/website/doxygen/lv2__rtme…
Any comments are welcome. In particular about whether general
purpose allocator (arbitrary memory chunk size) should be part of
this same extension.
I'm not quite sure I see the point of having hosts provide this level
of functionality. A pool of fixed size chunks is trivial to implement
on the plugin side.
The only obvious advantage I see is the potential transparent host
side sharing of memory across plugins - but this gets tricky to
implement when plugins request different chunk sizes. Sure, the host
can split and merge chunks and stuff as needed, but then you may as
well go all the way, as you'll need a real memory manager behind the
scenes anyway.
Something like TLSF for a reference implementation, maybe?
http://tlsf.baisoku.org/
//David Olofson - Programmer, Composer, Open Source Advocate
.-------
http://olofson.net - Games, SDL examples -------.
|
http://zeespace.net - 2.5D rendering engine |
|
http://audiality.org - Music/audio engine |
|
http://eel.olofson.net - Real time scripting |
'--
http://www.reologica.se - Rheology instrumentation --'