Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!uwm.edu!ux1.cso.uiuc.edu!pequod.cso.uiuc.edu!dorner From: dorner@pequod.cso.uiuc.edu (Steve Dorner) Newsgroups: comp.sys.mac.system Subject: Re: All about sys 7.0 Message-ID: <1991Mar26.153602.276@ux1.cso.uiuc.edu> Date: 26 Mar 91 15:36:02 GMT References: <1991Mar21.095051.29206@kuhub.cc.ukans.edu> <593@genco.bungi.com> <11391@jarthur.Claremont.EDU> Sender: usenet@ux1.cso.uiuc.edu (News) Organization: University of Illinois at U-C Lines: 48 In article <11391@jarthur.Claremont.EDU> wilkins@jarthur.Claremont.EDU (Mark Wilkins) writes: >>While an application has a progress dialog up, try putting it in the >>background and pull up something else. > > This is a problem under System 6 but application developers have the >opportunity to deal with it in System 7 and most do. Some application writers deal with it under System 6. It's not that hard. What I do under system 6 won't work under System 7, but I'll worry about that when I actually get System 7 to play with. > The Macintosh, just like a UNIX system, requires the developer to code in >certain ways in order to make a program run in a friendly way under a >multitasking environment. With the Mac, you need to make certain system >calls regularly. With UNIX you need to watch your resource usage in certain >ways. Uh, name one way you have to watch resource usage under UNIX that wouldn't ALSO apply to the Macintosh. Multifinder is an amazing hack, but no more. It just doesn't have the basic tools to deal with a true Multitasking environment. 1. Cooperative multitasking means a single poorly-behaved application can ruin performance for every other app. 2. No inter-process memory protection means a single poorly-behaved application can ruin everything for every other app. 3. No processing priorities mean it's impossible for the user to decide which tasks are important and should get the CPU. [BEFORE 12,000 ninnies post that the frontmost app has defacto high-priority, please tell me how to write the following function: GiveCPUTimeToCrucialBackgroundAppsButDont- YieldToHorrendousResourcePigsLikeTheMPWLinker(); I really need that function for when my application is frontmost.] For the things most users do, Multifinder is probably adequate; most users don't really NEED multitasking, just "multi-availability", and Multifinder is alright for that. Most users don't use buggy software, either, so 1 and 2 are less of a problem. Multifinder is hell for developers, though, because a) we'd like to compile in the background, and it just isn't practical and b) debugging apps without protection can be very frustrating. (I can't believe it; I just posted a cooperative/preemptive multitasking note. Next thing you know, I'll get involved in a land war in Asia...) -- Steve Dorner, U of Illinois Computing Services Office Internet: s-dorner@uiuc.edu UUCP: uunet!uiucuxc!uiuc.edu!s-dorner