🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #334

Re: UnLoadSeg()

#334
From: Randell Jesup
Date: Tue, 04 Jul 1989 01:09
28 lines
1616 bytes
In article <1364@inria.inria.fr> rouaix@inria.inria.fr (Francois Rouaix) writes:
>I  have a doubt on the possibility that UnLoadSeg() might
>Wait() somewhere. Does anybody knows for sure ?
>The reason I ask this is the following:
>A program detaches itself from CLI (ya know, hacking the
>SegList), runs, and at the end, unloads itself with UnLoadSeg().
>The very end of the code (ASM) looks like
>callsys Forbid
>* setup UnLoadSeg
>callsys UnLoadSeg
>moveq.l 0,d0
>rts
>
>And occasionally, I get a Guru (4)...

	UnLoadSeg() will not Wait() UNLESS the seglist is overlaid, in which
case it must Close() the program file.

	I would look for something trashing a seglist pointer, some reference
in a system structure to memory in your seglist (interrupt structures, nodes
on a public list, whatever), writing past the end of some data area (unlikely),
or passing the wrong seglist pointer to UnLoadSeg (must be a BPTR to the
first segment's next segment BPTR - the value returned by LoadSeg()).

-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
Common phrase heard at Amiga Devcon '89: "It's in there!"
Technical Details
Message-ID: <7208@cbmvax.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cbmvax!jesup
References: <1364@inria.inria.fr>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cbmvax!jesup
From: jesup@cbmvax.UUCP (Randell Jesup)
Newsgroups: comp.sys.amiga.tech
Subject: Re: UnLoadSeg()
Keywords: Waiting or not
Message-ID: <7208@cbmvax.UUCP>
Date: 4 Jul 89 01:09:11 GMT
References: <1364@inria.inria.fr>
Reply-To: jesup@cbmvax.UUCP (Randell Jesup)
Organization: Commodore Technology, West Chester, PA
Lines: 28