On 5/26/06, Rony G. Flatscher <Rony.Flatscher@wu-wien.ac.at> wrote:
Hi there,

one (open) question and one suggestion with the request for comments:
  • the present implementation of STRING does not work on a copy of the collection (ie no snapshot). In a multithreaded usage it could be the case, that the collection changes while the string representation is built.
    Shall I change STRING to work on a snapshot (copy) of the collection?
Good point.  Just use makearray with the appropriate option and create the string value from the array.  That should satisfy and concerns there.
  • ad QUEUE and PUSH: I would suggest that both methods return a result value.
    Reasoning: in the case that item objects need to be removed/deleted to make place for a new one, it may be very helpful for programmers to get at the one that gets removed, e.g. to carry out special work on them (cleanup, statistics, etc.). The suggested return values would be:
    • .nil ... if the action did not remove/delete an existing item object in the circular queue
    • an item object ... the item object which needs to be removed/deleted in order for the new item object to be placeable.
Sounds reasonable.