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.