Path: utzoo!utgpu!water!watmath!clyde!att!rutgers!gatech!ncar!ames!oliveb!sun!pepper!cmcmanis From: cmcmanis%pepper@Sun.COM (Chuck McManis) Newsgroups: comp.sys.amiga.tech Subject: Re: resource reclamation Message-ID: <64608@sun.uucp> Date: 17 Aug 88 18:33:41 GMT References:Sender: news@sun.uucp Reply-To: cmcmanis@sun.UUCP (Chuck McManis) Organization: Sun Microsystems, Mountain View Lines: 42 [Mr. Hoogerbeats, add this one to your list ...] In article (Miles Bader) writes: > How come simple resource reclamation isn't done? It seems like it > would be pretty simple to hang a list of allocated resources off a > task... > -Miles Because it isn't. The original DOS specified for the Amiga included resource reclamation, however when time got tight and Commodore had to go with MetaCompCo's modified version of TriPOS, there wasn't time to put it in. If you look at some of the structures you will notice that there entries for Tasks such as tc_MemEntry which were for this kind of stuff. That is not to say that it isn't possible. The ARP project (AmigaDOS Replacement Project) has created a library which allows you to track resources and free them on exit. The ARP stuff in on a Fish disk #??? and available thru the amiga archives. The question Miles didn't ask but always follows is : How come I can't kill a hung process with ^C or something? And when the program breaks why do I have to reboot the machine? The reason is that the Amiga does not have memory protection between tasks. And when a program goes astray, you do not know what sort of damage it may have caused to internal memory structures. It can damage the memory free list, trackdisk buffers, the stack of other programs, and a host of other "sensitive" areas. Consequently, if you continue to run the machine after a program has died, you run the much greater risk of destroying completely unrelated data. For most people this is unacceptable and that is why you have to reboot. For those people who like to gamble, there is a commercial program called GOMF which attempts to recover from these situations. It does keep the machine running, however if another program you are running crashes, you should be aware that it is much more likely that the originally crashed program probably is responsible, not a bug in the code that just ran. --Chuck McManis uucp: {anywhere}!sun!cmcmanis BIX: cmcmanis ARPAnet: cmcmanis@sun.com These opinions are my own and no one elses, but you knew that didn't you.