[comp.sys.apple] Unable to unload tool--explained

AWCTTYPA@UIAMVS.BITNET ("David A. Lyons") (05/15/88)

>Date:         Tue, 10 May 88 14:01:25 CDT
>Reply-To:     Info-Apple@BRL.ARPA
>From:         BHUBER@ecla.usc.edu
>Subject:      Re: RE:Tml Pascal and BASIC!!!
>
> [...]
>One bug you have not mentioned is "unable to unload tool 0002" after running
>TML Basic -- a fatal error, to say the least.
>
>Bud

I've never used TML Basic, but I have received the "Unable to unload tool,
$0002" message, and I understand what causes it.

When a ProDOS 16 application neglects to call TLShutDown (shut down the
tool locator, toolset #1), some toolsets remain in memory (nonpurgable and
still connected to the tool locator's tables).  Later, this can cause
problems:  for example, if you go into a ProDOS 8 program and some well-
behaved program calls TLStartup (or is it TLShutdown?  I forget which one
causes the problem), then the system tries to call UnloadOneTool for each
installed RAM-based toolset, if any.  UnloadOneTool proceeds to call the
Loader function UserShutdown, to mark all the memory owned by that tool as
"purgable."  But the Loader isn't available under P8, so error $0002 (meaning
that the tool locator was unable to make the call) gets returned.  The
tool locator startup/shutdown doesn't appreciate not being able to unload a
toolset, and it calls SysFailManager with the "Unable to unload tool" message
and the error code.

Neat, eh?

--David A. Lyons  a.k.a.  DAL Systems
  PO Box 287 | North Liberty, IA 52317
  BITNET: AWCTTYPA@UIAMVS
  CompuServe: 72177,3233
  GEnie mail: D.LYONS2