Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!tut.cis.ohio-state.edu!bloom-beacon!apple!dwb From: dwb@Apple.COM (David W. Berry) Newsgroups: comp.sys.mac Subject: Re: multitasking and IPC (was: System 8.0: no more DA's.) Message-ID: <23343@apple.Apple.COM> Date: 4 Jan 89 23:49:48 GMT References: <1988Dec16.191309.21623@cs.rochester.edu> <326@internal.Apple.COM> <807@esl.UUCP> <747@lts.UUCP> <34550@think.UUCP> Organization: Apple Computer Inc, Cupertino, CA Lines: 33 In article <34550@think.UUCP> barmar@kulla.think.com (Barry Margolin) writes: >I have one question about this whole issue: Perhaps the whole situation can be explained by laying out two separate but connect entities. There are tasks and layers. A task is much like a UNIX process, they can even be run in the background. A layer on the other hand is a collection of windows belonging to a single task. Note that not all tasks own a layer, applications which have the "background only" bit of the SIZE resource don't get layers created and thus can't have windows. By extension then, there are task switches and there are layer switches. Task switches change the active task and layer switches change the active layer. Both task and layer switches happen during GetNextEvent. Layer switches are a direct result of user action, a mouse click somewhere. Task switches are a result of user inaction, no user events have occurred so let's see if anybody wants to do anything in the background. Task switches may occur while a modal dialog is displayed. Layer switches can't. Thus, background tasks, including inactive layers, do get execution time while a modal dialog is displayed, they just can't be made the current front layer. Opinions: MINE, ALL MINE! (greedy evil chuckle) David W. Berry apple!dwb@sun.com dwb@apple.com 973-5168@408.MaBell