Investigate if either option (threading/forking) would
allow specific modules to work somewhat independently
(especially with regard to timers, the current core
only supplies a once-every-ten-seconds timer for
modules, and not even that is accurate) from the core.
I suppose threading, if possible, would be a far better
alternative to forking, since a fork would clone the
entire state of the bot and create a new, seperate
process that bears no relation other than being the
child of the original bot process. Processes cannot
modify eachothers memory segments. A well set-up
threading mode might be able to provide this
functionality without sacrificing complete access to
all actual variables.
One such suggestion may be to allow module to create a
new thread during their start-up (and allow them to
clean up this thread at shut-down) to open up a great
amount of other possibilities such as running web-based
interfaces to one or more parts of the bot, et cetera.