Patent ID: 7577657

Claim:
A system for updating objects in a multi-threaded computing environment, the system comprising: a processor; and tangible computer storage media having computer-executable instructions, when executed by the processor, for implementing: a plurality of update threads that request to update an object by writing data in a transfer data structure in the computer storage media, the transfer data structure comprising state information and a lock to serialize access to the transfer data structure by each of the plurality of threads; and a processing thread that accesses the transfer data structure to selectively process data in the data structure based on the state information to execute the latest request to update the object, wherein: the state information comprises a first flag indicating whether the transfer data structure is being updated by an update thread of the plurality of update threads and a second flag indicating whether the data in the transfer data structure is unprocessed by the processing thread; the processing thread selectively processes data in the transfer data structure by: setting the second flag to indicate that the data in the transfer data structure has been processed; after setting the second flag, capturing the data in transfer object; after capturing the data, checking whether the state information indicates that the transfer data structure is in an inconsistent state based on one or more of: the first flag indicating that the transfer data structure is being updated by an update thread, or the second flag indicating that the data in the transfer data structure is unprocessed; based on the checking, using the captured data to update the object when the transfer data structure is not in an inconsistent state; and discarding the captured data, without updating the object using the captured data, when the transfer data structure is in an inconsistent state.