Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!uw-beaver!cornell!batcomputer!riley
From: riley@batcomputer.tn.cornell.edu (Daniel S. Riley)
Newsgroups: comp.sys.amiga
Subject: Re: I Want my ZombieMsg Back!!!
Message-ID: <5293@batcomputer.tn.cornell.edu>
Date: 25 Jun 88 00:16:30 GMT
References: <421@draken.nada.kth.se>
Reply-To: riley@tcgould.tn.cornell.edu (Daniel S. Riley)
Organization: Cornell Theory Center, Cornell University, Ithaca NY
Lines: 36

In article <421@draken.nada.kth.se> G@epsilon.stacken.kth.se (Gunnar Nordmark) writes:
>Last night I rebooted my machine X times and couldn't figure out what was
>wrong with my program, it just hang.  After many hours I located the problem
>to a WaitPort() on a so called ZombieMsg that the ARP ASyncRun is supposed to
>return when the child process dies. I have set up the message with a reply
>port and put a pointer to it in pcb_LastGasp :-) but ASyncRun just ignores it.

Check the C header file ArpBase.h against the assembler ArpBase.i.  I found 
that in my copy of ArpBase.h, struct ProcessControlBlock has an extra 
declaration of ULONG pcb_SplatFile after the union which contains ULONG
pcb_SplatFile.  This offsets pcb_LastGasp by 4 bytes, so ASyncRun can't
find it.  After I deleted the extra declaration, ASyncRun worked fine for
me with a LastGasp port.  Here's what ArpBase.h has:

struct ProcessControlBlock {
	...lots of good stuff...
	union {
		ULONG	pcb_SplatFile;
		BYTE	*pcb_ConName;
	}
	ULONG	pcb_SplatFile;		/* this should not be here */
	CPTR	pcb_LoadedCode;
	struct ZombieMsg *pcb_LastGasp;
	...
};

The only other ASyncRun bug that I've found is in the documentation, which
refers to pcb_Flags;  this field is actually named pcb_Control in the header
files.

I have not reported these to the ARP project yet.  If anyone on the net logs
on to BIX more regularly than I, please report this to Charlet et al.
(Thanks)

-Dan Riley (dsr@crnlns.bitnet, dsr@lns61.tn.cornell.edu)
-Wilson Lab, Cornell U.
-Disclaimer:  New, Improved, Guaranteed 100% content free.