Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!rutgers!sri-spam!ames!sdcsvax!ucbvax!cartan!spam!lippin From: lippin@spam (tom lippincott) Newsgroups: comp.sys.mac Subject: Re: What does access memory manager' mean? Message-ID: <1319@cartan.Berkeley.EDU> Date: Mon, 12-Oct-87 01:44:57 EDT Article-I.D.: cartan.1319 Posted: Mon Oct 12 01:44:57 1987 Date-Received: Tue, 13-Oct-87 02:28:48 EDT References: <5365@jade.BERKELEY.EDU> <10620001@hpfclm.HP.COM> Sender: nobody@cartan.Berkeley.EDU Reply-To: lippin@spam.UUCP (tom lippincott) Organization: UC Berkeley Math Department Lines: 28 jmm@thoth14.berkeley.edu.BERKELEY.EDU sez: >In IM, it says that you can't use any >routines that access the memory manager >directly or indirectly from within >things such as VBL tasks, system tasks, etc. >Does this mean that any system call that >can cause heap scrambles is disallowed? Yes they're disallowed -- during the interrupt, you could be pulling information right out from under the main program. But wait, there's more! Even calls that don't change the heap can cause problems -- most quickdraw routines, in particular, are not reentrant. If you make a quickdraw call while the main program is making one, you'll probably mess up that call. (I've tried this. The bugs are Mostly Harmless, but there.) In the back of IM III there's a list of things not to call, which is extended in IV, and likely will be in V when it gets finished. But a good rule of thumb is that *no* calls that do any drawing can be called during the VBL interrupt. May the source be with you, --Tom Lippincott ..ucbvax!bosco!lippin "Release the blundering dolts!"