Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!sri-spam!nike!ucbcad!ucbvax!decvax!decwrl!glacier!oliveb!3comvax!mykes From: mykes@3comvax.UUCP Newsgroups: net.micro.amiga Subject: Re: Has Anyone written/seen programs like these? Message-ID: <560@3comvax.UUCP> Date: Fri, 27-Jun-86 15:51:15 EDT Article-I.D.: 3comvax.560 Posted: Fri Jun 27 15:51:15 1986 Date-Received: Sun, 29-Jun-86 06:34:23 EDT References: <8606262143.AA06402@pavepaws> Reply-To: mykes@3comvax.UUCP (Mike Schwartz) Organization: 3Com Corp; Mountain View, CA Lines: 32 How's this for a proposal... I got the source to the Manx 'C' libraries with my compiler, and as I scan through the subroutines, at least 90% of them are simple GLUE routines that call the Kernel routines. It is said that you can't kill a process on the Amiga because the system does not keep track of your memory allocation for you. I do not claim that this is possible in the general sense on the amiga, but there is something that could come close, at the expense of run-time speed and code size during development. Manx did a wonderful job with the libraries for the Amiga. It is not a port from the Mac (it may have started out that way...) or even worse the PC (like Lattice). Manx' libraries are optimized in many ways to take advantage of tricks that can be pulled on the Amiga. For example, malloc() is AllocRemember() internally, and free is FreeRemember(). This allows programs to allocate all they want, then simply call exit() which calls free() which cleans up everything. However, this does not solve problems with openned libraries or devices... So what if these glue routines were expanded a little? Add to them the necessary guts to remember ALL the resources used by a program, setting flags, keeping linked lists, so that exit() could automatically close all your devices, screens, windows, etc. This would also allow the Manx _main() routine to birth a task (not process) that could wait for a message or signal or whatever and could then cause the entire program to terminate and free up its resources. Then all anyone would need is a new version of break or kill or whatever that could send this "die" message. So there you have it... A way that a process might be killable under AmigaDos...