mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-26 16:49:18 +00:00
56 lines
2.9 KiB
Plaintext
56 lines
2.9 KiB
Plaintext
|
HFS Release Notes
|
|||
|
First created on: 6/22/92 7:44:55 PM
|
|||
|
|
|||
|
----------------------------------------------------------•----------------------------------------------------------
|
|||
|
|
|||
|
6/22/92 7:45:06 PM
|
|||
|
|
|||
|
File: FileMgrPatches.a,58
|
|||
|
Owner: Chris Derossi
|
|||
|
Project: MainProj∫OS∫HFS∫
|
|||
|
|
|||
|
Radar bug: #100889,1032495
|
|||
|
|
|||
|
> Release notes for this change:
|
|||
|
|
|||
|
Retrospect Remote and QuicKeys both patch low-level Event Manager traps to get time. If
|
|||
|
their trap patches happen to execute when the System (like the Process Manager) is
|
|||
|
calling the Event Manager, then the Macintosh is in “System Mode” when they run. If their
|
|||
|
patches execute at other times, the Mac is not in System Mode.
|
|||
|
|
|||
|
If their patches open files while the Mac is in System Mode, then the file they opened is
|
|||
|
marked as “Opened by the System”. This is done so the system can know which files it
|
|||
|
opened versus which files were opened by applications. (There are many reasons for this.
|
|||
|
For example, when an application quits, the Process Manager closes all files that were
|
|||
|
opened by that application and left open.)
|
|||
|
|
|||
|
There is a system patch to _Close which prevents files “Opened by the System” from being
|
|||
|
closed by processes other than the system (like applications). In other words, our patch
|
|||
|
to _Close prevents files that the system wants open from being closed by an application.
|
|||
|
The only problem is that under System 7.0 and 7.0.1, our patch to _Close had a bug and
|
|||
|
didn’t work. This meant that anyone could close a file that was opened by the system.
|
|||
|
|
|||
|
We fixed the patch to _Close so that applications could no longer close System-opened
|
|||
|
files.
|
|||
|
|
|||
|
Both QuicKeys and Retrospect Remote rely on being able to open and close files. All of
|
|||
|
their file operations happen during trap patches to the Event Manager. These patches are
|
|||
|
executed in System Mode sometimes and not in System mode at other times depending on the
|
|||
|
other things the Mac is doing. If a file is opened when the Mac is in System mode, and
|
|||
|
closed when the Mac is not in System mode, then the close fails, leaving the file open.
|
|||
|
This is why QuicKeys and Retrospect Remote are broken.
|
|||
|
|
|||
|
Since the patch to _Close has been broken since 7.0, and everyone is living with it that
|
|||
|
way, I disabled it for Cube-E. Conceptually it’s a good idea to prevent non-System
|
|||
|
processes from closing files opened by the System, but I don’t know of any dependencies
|
|||
|
on that behavior. So the bottom line is that anyone can once again close files that were
|
|||
|
opened by the System and QuicKeys and Retrospect Remote work again.
|
|||
|
|
|||
|
> What was tested:
|
|||
|
|
|||
|
I have a reproducable case of the QuicKeys failure that now works correctly. I didn’t do
|
|||
|
any real testing of Retrospect because the bug is random, depending on exactly when the
|
|||
|
trap patches fire. However, the frequent occurance of files being left open hasn’t
|
|||
|
happened in several days. (It used to happen nightly).
|
|||
|
----------------------------------------------------------•----------------------------------------------------------
|