I don’t see the point of clearing the ANYs (or references) then doing a PUT
only to do a FREE(Q) later.
I normally wrap my queues in a class (see ctQueue)
CwUnit/ctQueue.inc at master · MarkGoldberg/CwUnit (github.com)
The .DESTRUCT calls .FREE,
.Free in turn loops calling .DEL()
LOOP GET(SELF.BaseQ, 1)
IF ERRORCODE() THEN BREAK END
SELF.Del()
END
.DEL will call DELETE(SELF.BaseQ)
.DEL is a virtual method that is often derived,
in the derived method ANYs and REFERNCES are cleaned up
and then PARENT.DEL()
From a coding point of view, it’s nice in that I only need write code dealing with just one row.