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

Disk-saving in 7.1



This is in response to numerous customer questions about missing
mouse-handlers in freshly-saved worlds.  There's been a lot of 
folklore, myth and misinformation as to why user-defined mouse-
handlers sometimes disappear when you do a disk-save.  The most
popular fallacy is that you have to have the mouse sitting some-
where on the visible part of the screen in order to make sure
that mouse-handlers get saved.  Below is the real story.  It's
inconvenient, but worthwhile (and temporary; it'll be fixed in
the next release).  Thanks for keeping this around, it could save
you hours of frustration some day.

    Before disk-saving a 7.1 world, you must perform the following
    invocation.

    (progn (dw::with-type-handler-tables-valid)
	   (process-wait "Handler table update"
	     (lambda () (null dw::*type-handler-tables-update-process*))))

    This will trigger an update if one is needed, and then wait for it
    to complete.  Putting the mouse on the screen assures neither triggering
    nor completion of any needed update.

    You must do this as the last thing before saving the world.
    This means you must do this *AFTER* loading all files, patches,
    etc.  You cannot use the :Save Yes option to Load Patches.  You
    must do this *EVERY TIME* you save a 7.1 world, even if this has
    already been done before.

    This may (or may not) be fixed in certain in-house 7.1 worlds, but
    everyone should be aware that this problem exists in all customer 7.1
    worlds.