Patent ID: 8239871
Filing Date: 2012-08-07
Classification: G06F

Abstract:
1. A method of managing a timer processing system of a multithreaded computer system, the method comprising: in response to each transaction initiated by a first thread of a plurality of threads, instantiating a timer object corresponding to the transaction in storage local to the first thread, the timer object including a scheduled expiration time and a set of timeout handling information for the transaction; in response to each passing of a fixed time interval, registering each timer object instantiated in the storage local to the first thread for which the scheduled expiration time is earlier than the fixed time interval added to a current time in a timer processing system by adding a pointer that references the timer object to a data structure managed by the timer processing system, with a timer processing component regularly processing each timer object referenced by the data structure for which the scheduled expiration time value is not earlier than the current time in accordance with the set of timeout handling information of the timer object; managing each timer object corresponding to a transaction initiated by the first thread that is not registered in the timer processing system in the storage local to the first thread; for each transaction initiated by the first thread, in response to instantiating the timer object corresponding to the transaction, registering the timer object in the timer processing system by adding a pointer referencing the timer object to a data structure managed by the timer processing system if the scheduled expiration time of the timer object is earlier than the fixed time interval added to the current time; in response to instantiating a first timer object corresponding to a first transaction initiated by the first thread, if the scheduled expiration time of the first timer object is not earlier than the fixed time interval added to the current time, instantiating a first timer control block in the storage local to the first thread and inserting the first timer control block in a linked list of timer control blocks each corresponding to a respective thread of the plurality of threads, wherein each timer control block in the linked list includes a timer object queue for containing timer objects instantiated by the respective thread; in response to instantiating the first timer object, adding the first timer object to the timer object queue of the first timer control block; and in response to inserting the first timer control block in the linked list, for each subsequent transaction initiated by the first thread, adding the timer object to the timer queue of the first timer control block if the scheduled expiration time of the timer object is not earlier than the fixed time interval added to the current time; wherein the timer processing system updates a time value stored in a first register to correspond to the fixed time interval added to the current time each time the time value stored in the first register is equivalent to the current time, wherein the timer processing system, in response to each update of the time value stored in the first register, traverses the timer control blocks in the linked list to identify each timer object contained in the timer object queue for each timer control block for which the scheduled expiration time is earlier than the time value stored in the first register, and wherein registering each timer object in the storage local to the first thread for which the scheduled expiration time is earlier than the fixed time interval added to the current time in the timer processing system, in response to each passing of the fixed time interval, is performed by the timer processing system during the traversal of the timer control blocks in the linked list in response to each update of the time value stored in the first register.