Article View: comp.sys.amiga.tech
Article #334Re: UnLoadSeg()
From: Randell Jesup
Date: Tue, 04 Jul 1989 01:09
Date: Tue, 04 Jul 1989 01:09
28 lines
1616 bytes
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!jesupReferences:
<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