Article View: comp.sys.powerpc
Article #3289Re: Copland merely shifts the burden to the programmer
From: Gregory L Hansen
Date: Thu, 29 Feb 1996 18:16
Date: Thu, 29 Feb 1996 18:16
56 lines
3700 bytes
3700 bytes
In article <31349BAA.6418@mediamatic.nl>,
Pascal Haakmat <pascal@mediamatic.nl> wrote:
>> A process spawned by a blue box task doesn't go down. And it can
>> restart its UI portion. Copland applications survive a blue box crash
>> or lockup. Copland applications have memory protection and preemptive
>> multitasking.
>
>
>Yeah yeah I hear this all the time - show me HOW a process spawned by a
>blue box task is going to 'restart it's UI portion' without an extensive
>coding effort on the part of the programmer. And how often is it not the
>case that UI and task are intricately interwoven? How often does it not
>happen that the UI is actually inherent to the task (I'm thinking of
>display-engines like Netscape's & Xpress')?
I'm only guessing, and basing it on my understanding of programming under
System 7. Sometimes a window or a dialog box gets put on top of another
window. Then when it's uncovered, a portion of the window is left
undrawn. It's the program's responsibility to redraw it, which it does
when it receives an update event.
Well... if the Blue Box crashes and is restarted, chances are the program
will receive a restart Blue Box event. If it could set up the user
interface in the first place, it can set up the user interface again.
Just call your SetUpInterface(parameters) function, where paramaters
will be a structure containing information about the current state of the
program, rather than the initial state.
Each window can have a data structure with information like position and
size, and each process you're running that draws to a window will have a
pointer to the window data. So start at your first structure and cycle
through, drawing a window for every one that needs a window.
And if your program can handle an update event, as every Mac program
must, you can cycle through your windows (they're all linked) and call
your UpdateWindow(thisWindowPointer) for every one. Unless the OS
generates an update event for every window, in which case your program
will do it automatically with no more effort on your part.
It's really not that hard. You need to add some extra code for
restarting the interface (not much extra code since you already have to
draw it once), and otherwise, your program should act like that anyway.
>I thought all the PMT bullshit was to make the programmer's life easier.
I thought you'd heard? The whole idea of the Mac and other GUIs is to
make the *user's* life easier, not the programmers.
>People are just not going to do it. The BB will crash and lots of PMT
>spawned processes will not anticipate it. As things stand, anything
>beyond that is pure speculation.
That programmers are not going to do it, and that PMT spawned process
will not anticipate a BB crash, is also pure speculation. You're
possibly assuming that the programmers are sloppier and lazier than they
really are. You're also assuming that those programmers won't be fired
or moved to other projects, and replaced by programmers who will do the
job right.
Technical Details
Message-ID:
<4h4qir$dpj@nuke.csu.net>Path:
arc1-ca.pugleaf.net!newshub.csu.net!ghansenReferences:
<nevin-0602962253080001@150.135.1.79> <4glem9$li5@nnrp1.news.primenet.com> <4gsrip$bp7@meaddata.lexis-nexis.com> <31349BAA.6418@mediamatic.nl>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!newshub.csu.net!ghansen From: ghansen@isc.sjsu.edu (Gregory L Hansen) Newsgroups: comp.sys.powerpc,comp.os.linux.advocacy,comp.sys.mac.advocacy,comp.os.os2.advocacy,comp.sys.amiga.advocacy Subject: Re: Copland merely shifts the burden to the programmer Date: 29 Feb 1996 18:16:59 GMT Organization: San Jose State University, San Jose, California Message-ID: <4h4qir$dpj@nuke.csu.net> References: <nevin-0602962253080001@150.135.1.79> <4glem9$li5@nnrp1.news.primenet.com> <4gsrip$bp7@meaddata.lexis-nexis.com> <31349BAA.6418@mediamatic.nl> NNTP-Posting-Host: athens.sjsu.edu