manual memory management

deadalnix deadalnix at gmail.com
Wed Jan 9 01:35:27 PST 2013


On Wednesday, 9 January 2013 at 08:46:20 UTC, Paulo Pinto wrote:
> You can write plugins without dynamic loading, they just are a 
> bit more cumbersome to write.
>
> Like I used to do back in the late 90's, by making use of 
> UNIX's IPC.
>
> The IPC to use (shared memory, pipes, mailbox, sockets) depends 
> on what is required from the plugin. With shared memory being 
> the closest to what dynamic loading achieves.
>
> Of course this raises another set of issues like:
>
> - Take care what happens when a plugin dies
> - Too many loaded plugins can stress the scheduler
> - You might have synchronization issues when using shared memory
> - It is a bit more painful to code for
>
> This is the school of thought of the Plan9/Go guys and most 
> operating system micro-kernel architectures.
>

Such a solution cause the same kind of issue for the runtime. For 
instance, how to handle the garbage collection of the shared 
memory ? What do happen if I get the typeid of an object of a 
type that only exists in the plugin in the core app ?

It quite don't solve problems we have.


More information about the Digitalmars-d mailing list