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

Reply via email to