On Feb 27, 12:16 pm, Anthony Shipman <[email protected]> wrote:
> My software experiment that is available at
>        http://www.anthony-shipman.id.au/software/index.html
> includes a plug-in system e.g.
>
> jfx.Plugin.addPath("/tmp");
> jfx.Plugin.load("jqt");
> jfx.Plugin.unload("jqt");
>
> or set JFX_PLUGIN_PATH or it just uses a default plugins directory.

Hi, Anthony! Thanks, i'll take a look at that, too :).

As a side-note: it's actually not safe (EVER) to unload a DLL. It is
NEVER possible to 100% guaranty that resources contained within a DLL
will be closed properly this way. One problematic case i'm experienced
with is when, e.g. a function pointer in the DLL is added to a factory
map in the main application. If the DLL is closed, that function
pointer becomes dangling and will Cause Grief. On a philosophical
level it is simply not possible to make any such safety guarantees
with DLLs, especially C++ DLLs, because static initialization if the
DLL can allocate arbitrary resources, perform arbitrary tasks, and
load other DLLs. For example, consider this bit of code from a DLL:

static int bogo = (call_some_function(),1);

generically speaking, call_some_function() could do ANYTHING, and
closing a DLL is unlikely to undo any resource allocation performed by
that routine. While that may seem like a made-up problem, this
approach is central to some C++ classloaders.

--~--~---------~--~----~------------~-------~--~----~
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to