Patents by Inventor Robert Earhart

Robert Earhart has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8219845
    Abstract: A timer service uses a single timer function to perform timing services for both relative and absolute timers. The first timers from a sorted array of absolute timers and relative timers are used in a function that will return when the earliest absolute timer expires or will timeout when the earliest relative timer expires. The timer function may be interrupted when a new timer is added to one of the arrays. The function will operate in a predictable and consistent manner, even when a system clock is adjusted.
    Type: Grant
    Filed: May 9, 2007
    Date of Patent: July 10, 2012
    Assignee: Microsoft Corporation
    Inventors: Eric Li, Robert Earhart, Dragos C. Sambotin
  • Publication number: 20080282103
    Abstract: A timer service uses a single timer function to perform timing services for both relative and absolute timers. The first timers from a sorted array of absolute timers and relative timers are used in a function that will return when the earliest absolute timer expires or will timeout when the earliest relative timer expires. The timer function may be interrupted when a new timer is added to one of the arrays. The function will operate in a predictable and consistent manner, even when a system clock is adjusted.
    Type: Application
    Filed: May 9, 2007
    Publication date: November 13, 2008
    Applicant: Microsoft Corporation
    Inventors: Eric Li, Robert Earhart, Dragos C. Sambotin
  • Publication number: 20070014295
    Abstract: Sharing access to resources using an inter-process communication (“IPC”) provides a connection in which references to resources may be passed from a sender to a receiver in a trusted third party environment. A sender in possession of a reference to a resource, such as a handle to an object, may initiate the connection with the receiver. In turn, the receiver may accept or refuse the connection, and may further specify the types of resources in which the receiver is interested when accepting through the connection. Sharing access to resources in this manner advantageously insures that only a process that already has access to a resource is able to share that access with another process, and further that only processes that wish to do so will accept such access.
    Type: Application
    Filed: July 15, 2005
    Publication date: January 18, 2007
    Applicant: Microsoft Corporation
    Inventors: Genevieve Fernandes, Adrian Marinescu, Neill Clift, Robert Earhart, Adnan Ilik
  • Publication number: 20060212450
    Abstract: The invention provides a temporary master thread mechanism that allows any thread wishing to update a data structure to become the temporary master thread for the data structure. A thread becomes a temporary master thread for the data structure by acquiring a lock associated with the data structure. A temporary master thread is capable of processing all pending updates for the data structure, wherein the pending updates can be introduced by the temporary master thread and/or other threads. The temporary master thread releases the lock after processing the pending updates for the data structure.
    Type: Application
    Filed: March 18, 2005
    Publication date: September 21, 2006
    Applicant: Microsoft Corporation
    Inventor: Robert Earhart
  • Publication number: 20060208829
    Abstract: A system and method for timer windows is provided. A mechanism is provided for managing actions that need to be started within a specified interval. By exploiting windows of acceptable times for events, timer expirations can be grouped and processed in batches to improve the throughput of the system. For one embodiment, an event is associated with a timer object, which has start and end times that specify an interval during which the associated event should be started. A pair of priority queues prioritizes timers by earliest start times and earliest end times. These times are compared with the current time, and corresponding timers are retired from the queue until the timer at the front of the queue has a start time that is later than the current time.
    Type: Application
    Filed: March 15, 2005
    Publication date: September 21, 2006
    Applicant: Microsoft Corporation
    Inventors: Robert Earhart, Grigori Kapoustin
  • Publication number: 20060212456
    Abstract: An interlocked object transfer data structure is provided for enabling requests made by multiple threads to update objects in a multi-threaded computing environment to be executed by a single processing thread. An object in the interlocked object transfer data structure contains a pair of flags, which the processing thread manipulates via interlocked operations to manage updates for the object that are requested by multiple threads.
    Type: Application
    Filed: March 18, 2005
    Publication date: September 21, 2006
    Applicant: Microsoft Corporation
    Inventor: Robert Earhart