Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!usc!apple!agate!ucbvax!ucsd!sdcc6!beowulf!djohnson From: djohnson@beowulf.ucsd.edu (Darin Johnson) Newsgroups: comp.sys.amiga.programmer Subject: Re: What's a Hanging Forbid!? Keywords: Hanging Forbid Message-ID: <16014@sdcc6.ucsd.edu> Date: 25 Jan 91 20:27:00 GMT References: <1991Jan23.201301.2046@bilver.uucp> Sender: news@sdcc6.ucsd.edu Organization: CSE Dept., UC San Diego Lines: 21 Nntp-Posting-Host: beowulf.ucsd.edu In article <1991Jan23.201301.2046@bilver.uucp> alex@bilver.uucp (Alex Matulich) writes: >Forbid() is an Amiga C function call which disables multitasking so the >calling program can have sole uninterupped access to the Amiga's services, >system structures, etc. It is usually followed by Permit() to re-enable >multitasking when the program finishes doing whatever it needs. >If Permit() was not called before the program terminates, you have a >"hanging forbid," which used to cause lockups in the OS versions 1.2 and >earlier, and still causes problems with 1.3. I use WShell too, and haven't >had a problem with these offending programs with it. Hmmn, I recall reading somewhere that if you remtask a task that has outstanding forbids, that these will be removed. In other words, you can Forbid(), do some cleanup code, exit the program, and everything should be ok. There are other ways to do safe cleanups, but they often take extra paranoid-style code. (so, am I wrong, or did I really read this?) -- Darin Johnson djohnson@ucsd.edu - Political correctness is Turing undecidable.