home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Otherware
/
Otherware_1_SB_Development.iso
/
amiga
/
system
/
shadow.rea
< prev
next >
Wrap
Text File
|
1992-11-11
|
3KB
|
54 lines
SHADOW.library V4.6 Released:09 Feb 1992 by David C. Navas
Update to SHADOW V4.3 -- fixes 1.3 bugs and 68000 bugs (we hope).
Freely distributable only for those environments which are
themselves freely distributable.
Includes shadow.library, ppipc.library, and several example programs
including a class browser.
Also included is more than 160k of Documentation!
Requires AmigaDOS2.0!!!
Taken from Shadow/Docs/Introduction.doc:
SHADOW is a concurrent-object-oriented addition to AmigaDOS.
Its principle design goal is to help standardize an extensible
environment paradigm. It takes advantage of some of the better
AmigaDOS facilities (shared memory system, IPC ports, and fast
context switching) by internally managing much of the inter-task
communications, resource tracking, and resource allocation.
Traditional object-oriented systems separate function
interfaces from internal data structures and manage the allocation
and access of these structures within objects. SHADOW takes this
interface separation one step further by uncoupling the method
invocation from the parameter specification. It also manages the
allocation of structures in a transparent manner, allowing the use
of the faster, hard-coded structure offsets of C structs.
SHADOW was created to solve the problems which I ran into with
my first programming project -- JazzBench. That experience taught
me that the most important thing in a co-operative multi-program
environment is flexibility. You need to be able to change the
behaviour of EVERYTHING -as- -it- -runs-. This lesson was the
principle reason behind the initial design of SHADOW, and the result
of that principle was the entire WatchedVariable construct. To a
lesser extent, it was also responsible for Patches.
However, that was not the only lesson that was learned. Trying
to locate governing control in some kind of super-server was a real
bust. Turns out so much information had to cross through that
server to correctly manage all the resources that the server turns
into a real bottleneck. So what I needed was a subsystem which
effectively dealt with the concurrency and shared resource management
problems.
The other major subsystem of SHADOW supports the increased use
of more complicated data structures. Sounds easy, but there've got
to be a dozen AVLTree functions alone, and that doesn't include
constant string management and singly-linked, priority lists, etc.