Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!utgpu!water!watmath!clyde!rutgers!lll-lcc!well!ewhac
From: ewhac@well.UUCP
Newsgroups: comp.sys.amiga
Subject: Re: New PopCLI
Message-ID: <4646@well.UUCP>
Date: Sun, 6-Dec-87 16:47:41 EST
Article-I.D.: well.4646
Posted: Sun Dec  6 16:47:41 1987
Date-Received: Sat, 12-Dec-87 08:41:42 EST
References: <799@rocky.STANFORD.EDU>
Reply-To: ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab)
Organization: Time Distortion Enterprises.
Lines: 45
Keywords: Do Not Use!
Summary: (sung childlishly) I know why it brooooke, I know why it brooooke...

In article <799@rocky.STANFORD.EDU> rokicki@rocky.STANFORD.EDU (Tomas Rokicki) writes:
>Don't use the PopCLI I posted; if you stick in a disk when it is drawing its
>pretty patterns, the machine will lock up.  Must be something to do with my
>Forbid(); Draw(); Permit(); so don't use that either until I figure out
>what's going on.  (I just found this bug a few seconds ago and will debug it
>when time permits.)  [ ... ]

	Consider the internal implementation of Draw():

	OwnBlitter ();
	for (i=0; i < NUMBER_OF_PLANES; i++) {
		WaitBlit ();		/*  <---  This is the important bit */
		FillBiltterRegisters ();
		StartBlitter ();
	}
	DisownBlitter ();

	Now, imagine a Forbid()/Permit() pair around this.  When you call
WaitBlit(), you may block.  If you block, you temporarily give up your right
to Forbid() the system.  It is at this point that your drawing subtask
(which I strongly suspect is similar to the one you posted recently) may get
RemTask()ed out from under its feet.

	Great.  The task now owns the blitter.  The task also no longer
exists.  Can you say "system locked up tighter than a drum"?  I knew you
could.

	I said it before; I'll say it again:  It is *NEVER* kosher (from an
academic standpoint, admittedly) to arbitrarily RemTask() a running task.
*ALL TASKS MUST RUN TO COMPLETION TO PRESERVE COSMIC SERENITY.*

>Re: Matt's detach comment, right on, Matt!  Now, Jim Goodnow, will you let
>me post a new _main() for 3.4b from the one in Leo's robotroff and the new
>library sources for 3.4b?  Or better yet, write one for me and post it?
>This detach business should be handled by the compiler, IMHO.
>
	I'll consider this another request for a 3.4 version of Robotroff's
_main.  It's really quite easy, and I'll try to get around to this one as
quickly as I can (is this a euphemism for "Real Soon Now"?).

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Leo L. Schwab -- The Guy in The Cape	ihnp4!ptsfa -\
 \_ -_		Recumbent Bikes:	      dual ---> !{well,unicom}!ewhac
O----^o	      The Only Way To Fly.	      hplabs / (pronounced "AE-wack")
"Work FOR?  I don't work FOR anybody!  I'm just having fun."  -- The Doctor