1. A data structure comprising: a list of event objects; one or more producers creating the event objects for the list; and a finite set of consumers accessing the object list; characterized in that the event objects are each associated with a first reference number indicating the number of consumers currently accessing the event object, and in that, as each consumer completes access the reference number is decremented, and when the reference number for an event object is zero, and the event object is at the head of the list, indicating that all consumers have accessed the object, that event object is removed from the list.