MUD-Dev
mailing list archive
[ Other Periods
| Other mailing lists
| Search
]
Date:
[ Previous
| Next
]
Thread:
[ Previous
| Next
]
Index:
[ Author
| Date
| Thread
]
Dynamic Loading of Modules
On Tue, 24 Feb 1998, Vadim Tkachenko wrote:
> Niklas Elmqvist wrote:
> > If you are wondering what the fuss is all about (or why this posting is
> > getting so long), let me just say this: One application of this could be
> > an Event class (in an event-driven system), whose base class is known to
> > the core server (allowing for it to check the priority and expiration of
> > the event, among other things), while the modules can inherit from the
> > base class and redefine it to suit their particular needs. I also plan on
> > using this technique for Handler objects which take care of things such as
> > socket I/O, parsing, DB managment, etc, and the good thing about it is
> > that I thus will be able to attach and detach the modules at run-time (to
> > remedy a bug, for example). If the base classes are correctly implemented,
> > the core will never even have to be recompiled and thus never rebooted
> > (not accounting for fatal bugs, that is <g>)!
>
> Not quite so.
>
> See, I use almost exactly the same technique in my Java development,
> and indeed, it's possible, using Class.forName( ... ), instantiate the
> absolutely unknown before classes - in fact, I suspect that the other
> guy, who lives at http://www.wwwalker.com/, used this technique to
> produce applets at least a year ago, but his technique seems to be even
> more pervert - he compiles classes on-demand, and then actually loads
> them.
That'd be really useful in some contexts, but not, I believe, in my MUD
server :)
> The weak point for me is that once you load the class, it's extremely
> difficult to UNLOAD it.
> I've heard that the guys who write the servlet support for Apache
> managed to write the custom ClassLoader to do that, but didn't have time
> to dig it myself.
The web server Apache, I presume? Never toyed around with this, but on a
side note I would like to add that the module system of Apache, although
useful and stable, could be done *much* better. The mods are linked to
the main binary at link-time, so you still have to recompile and reboot to
incorporate new mods. Of course, since a web server
> How do you handle this?
Fortunately, as I am developing my server in C++ on a Linux system, I have
access to the dynamic loading package (originally derived from Solaris, I
believe). To dynamically load a shared binary I simply do a dlopen(), to
retrieve a symbol (such as a function pointer) from the lib I do dlsym(),
and to unload the entire lib I do a dlclose(). Check out the manpages for
these functions to get an in-depth description.
However, since I have preciously little experience with Java, I cannot
help you in that matter.
-- Niklas Elmqvist (d97elm#dtek,chalmers.se) ----------------------
"You can't trample infidels when you're a tortoise. I mean, all you
could do is give them a meaningful look."
- Terry Pratchett, Small Gods
- Thread context:
- Tutorial: Let's build a Compiler! - Part I: Introduction,
Jon A. Lambert Jon.A.Lambert#ix,netcom.com, Fri 27 Feb 1998, 03:36 GMT
- Tutorial: Comments on Hand-crafting a compiler,
Jon A. Lambert Jon.A.Lambert#ix,netcom.com, Fri 27 Feb 1998, 03:30 GMT
- Re: [MUD-Dev] Java and Javascript,
Mike Sellers mike#online-alchemy,com, Thu 26 Feb 1998, 16:13 GMT
- bar-time (was Re: [MUD-Dev] The MLI Project),
Mike Sellers mike#online-alchemy,com, Wed 25 Feb 1998, 21:54 GMT
- Dynamic Loading of Modules,
Niklas Elmqvist d97elm#dtek,chalmers.se, Wed 25 Feb 1998, 06:26 GMT
- Re: [MUD-Dev] The MLI Project,
Chris Gray cg#ami-cg,GraySage.Edmonton.AB.CA, Tue 24 Feb 1998, 18:20 GMT
[ Other Periods
| Other mailing lists
| Search
]