1. A method of supporting condition synchronization for a shared data structure so as to provide simultaneous access, the method comprising: providing a protocol between a thread creating a request as part of a remove operation and a thread fulfilling a request as part of an add operation, wherein a requesting thread sets a requestor_id field of a data node with a value that identifies the requesting thread, a fulfilling thread sets a request_value field of a request node via a CAS operation with the address of the data node with the value, and then signals the requesting thread that the request_value field of the request node has been set, and upon receiving the signal, the requesting thread wakes up and retrieves the value from the data node pointed to by the request_value field of the request node.