[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

programming hints?

    Date: Tue, 12 Mar 91 12:39 PST
    From: JFK@BOLD-EAGLE.varian.dialnet.symbolics.com (Joe F. Karnicky)

    (1) I'm unclear about  how to best save and restore the program
    state when the es switches from processing IHOST-1 to IHOST-2 etc.
    I would prefer to not reinvent multiprocessing.

First of all, Lucid Lisp provides multiprocessing within a Lisp image,
very much like Genera does (except for the hair Lucid has to go through
to multiplex the terminal), so you don't have to reinvent it.  See the
Advanced User's Guide.  However, if your expert system isn't reentrant
you won't be able to use the built-in multiprocessing.

If you can't multiprocess, you can use a level of indirection.  Access
all the state through IHOST objects.  Have the sleeping routine return
the IHOST object corresponding to the host that wrote the endfile that
caused it to wake up, and then pass this object to the work routines.
The ability to extend programs in this way is why global variables are
considered a bad idea.