I see I have a typo in the title... It should be Orphan. Thank you for looking at this.
The user knows there are orphans because I have created what one might call a "variable length cell pool system above the bar". The way it works is I obtain a meg of storage above the bar. When obtained the "get storage address" is set to after the first cell obtained and the count of cells is set to 1. From then on, each obtain cell request simply uses CSG instruction to set the "get storage address" and increases the count using CS instruction. When it reaches the end of the meg of storage it obtains another meg. When the cell is freed, it simply marks it as freed and reduce the number of cells in the meg of storage using the CS instruction. I know there is a problem because after the last cell in the meg is freed, the count of cells is not zero. When this situation is detected I produce a dump, the user is notified, and the whole meg of storage is actually freed. I did not include all this in the original posting because I know this variable length cell block system is not the problem because the cell not freed is in the middle of the meg of storage and the chain of control blocks that has the orphan is completely separate from this "variable length cell pool system above the bar". Another clue as to what is happening here is the next pointer of the orphan control block is zero (which indicates end-of-chain). This indicates to me that I have somehow started two chains and one of the chains never makes it to the first and last pointer. This is what the PLO instructions in the original posting is to handle. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
