Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site 3comvax.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!oliveb!3comvax!brianb
From: brianb@3comvax.UUCP (Brian Bechtel)
Newsgroups: net.micro.mac,net.sources.mac
Subject: Re: A program and a flame. . .
Message-ID: <280@3comvax.UUCP>
Date: Tue, 12-Nov-85 11:46:10 EST
Article-I.D.: 3comvax.280
Posted: Tue Nov 12 11:46:10 1985
Date-Received: Thu, 14-Nov-85 00:22:17 EST
References: <480@spice.cs.cmu.edu>
Organization: 3Com Corp; Mountain View, CA
Lines: 29
Xref: watmath net.micro.mac:3416 net.sources.mac:713

>The approach that my program takes, therefore, is to try
>to close every driver with a resource ID between 12 and 31; this seems
>to work fairly well.  It certainly works better than the approach of
>doing nothing and letting the system crash and burn. . .

Sorry.  Apple changed the rules.  In a document distributed with the May
1985 software supplement, titled "Life After Font/DA Mover -- How To
Make Sure Your Desk Accessory Still Works" you find the lines:
----------
By the Way... Before the Font/DA Mover, desk accessories could have an
ID in the range 12 to 31.  Now, and in the future, desk accessories can
only have IDs in the range 12 to 26.  The Font/DA Mover will only
assign numbers in this range.  Numbers 27 thru 31 are reserved for
dynamic allocation of IDs at runtime for disk drivers, mail servers,
etc.
----------
EtherMac is such a product.  Sampler will close our Appletalk/Ethernet
driver, which is disasterous if you're running from the network. The
only way to recover is to reboot.  The close code should look like:

CloseAllAccs()
{
    int i;
    for (i = 12; i < 27; i++) CloseDeskAcc(-i-1);
}

and everything will be fine.

--Brian Bechtel		{apple, bnrmtv, oliveb}!3comvax!brianb