IP Library › Granted Patent US 7,823,157
Granted Patent B2
US 7,823,157 · App. 10/716,111 · Granted Oct 26, 2010

Dynamic queue for use in threaded computing environment

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,823,157
App. No.
10/716,111
Granted
Oct 26, 2010
Kind
B2
Abstract

The present invention provides a dynamic queue for managing jobs in a threaded computing environment. Jobs may be placed in the queue, which may be maintained within a context of the computing environment, at a given priority level. The priority of jobs within the queue and the receipt time of each job is maintained. A job may also be placed within the queue with triggers that, if met, will result in the priority of the job being changed or will result in the job being removed from the queue entirely. Methods in accordance with the present invention also provide a method for raising an exception should multiple threads seek to access objects within a single context. Methods in accordance with the present invention also provide compatibility with prior computing systems and methodologies by providing for integration of prior static queues with dynamic queues in accordance with the present invention, and by providing methods for a given thread to be pinned to a particular context of a computing environment.

Claims (26)

1. In a threaded computing environment having a plurality of contexts, each context capable of containing a queue, context settings, a context dictionary, and objects, a method for allocating the access of threads to a user interface context, the method comprising:

receiving a request to access the user interface context from a first thread, wherein the user interface context is configured to receive input from a user, to provide output to the user, and to maintain the context settings and the context dictionary;

determining whether the user interface context is presently being accessed by a second thread;

when the user interface context is presently being accessed by the second thread, denying the request to access the user interface context received from the first thread; and

when the user interface context is not presently being accessed by the second thread, performing a process to allow for backward compatibility comprising:

(a) allowing the request to access the user interface context received from the first thread;

(b) updating a context record maintained by the first thread to reflect that access is allowed to the user interface context;

(c) verifying that the first thread has obtained exclusive access to the user interface context by checking the context record by way of the process comprising:

(i) incident to the first thread accessing an object in the user interface context, checking a most recent entry in the context record provided within the first thread, wherein the context record identifies the contexts accessed by the first thread, and wherein the most recent entry in the context record indicates the context that is presently being accessed by the first thread;

(ii) determining whether the most recent entry in the context record matches the user interface context associated with the object being presently accessed; and

(iii) when the most recent entry in the context record does not match the user interface context associated with the object being accessed, raising an exception; and

(d) temporarily assigning to the first thread the context settings and the context dictionary maintained by the user interface context while the first thread is operating within the user interface context, wherein assigning comprises placing the context settings and the context dictionary within thread settings of the first thread upon accessing the user interface context, and wherein settings of the context settings and dictionary information of the context dictionary are specified at a context level, rather than on a thread level.

2. The method for allocating the access of threads to a user interface context of claim 1 , the method further comprising restoring the thread settings when a thread departs the user interface context.

3. One or more computer-storage media having computer-executable instructions embodied thereon that, when executed, perform a method for allocating the access of threads to a user interface context in a threaded computing environment having a plurality of contexts, each context capable of containing a queue, context settings, a context dictionary, and objects, the method for allocating the access of threads to a user interface context comprising:

receiving a request to access the user interface context from a first thread, wherein the user interface context comprises one or more objects, wherein the user interface context is configured to receive input from a user, to provide output to the user, and to maintain the context settings and the context dictionary, wherein the context dictionary includes information from a plurality of sources;

determining whether the user interface context is presently being accessed by a second thread;

when the user interface context is presently being accessed by the second thread, denying the request to access the user interface context received from the first thread; and

when the user interface context is not presently being accessed by the second thread, performing a process to allow for backward compatibility comprising:

(a) allowing the request to access the user interface context received from the first thread;

(b) updating a context record maintained by the first thread to reflect that access is allowed to the user interface context;

(c) verifying that the first thread has obtained exclusive access to the user interface context by checking the context record by way of the process comprising:

(i) incident to the first thread accessing an object in the user interface context, checking a most recent entry in the context record provided within the first thread, wherein the context record identifies the contexts accessed by the first thread, and wherein the most recent entry in the context record indicates the context that is presently being accessed by the first thread;

(ii) determining whether the most recent entry in the context record matches the user interface context associated with the object being presently accessed; and

(iii) when the most recent entry in the context record does not match the user interface context associated with the object being accessed, raising an exception; and

(d) temporarily assigning to the first thread the context settings and the context dictionary maintained by the user interface context while the first thread is operating within the user interface context, wherein assigning comprises placing the context settings and the context dictionary within thread settings of the first thread upon accessing the user interface context, and wherein settings of the context settings and dictionary information of the context dictionary are specified at a context level, rather than on a thread level.

4. The one or more computer-storage media of claim 3 , the method for allocating the access of threads to a user interface further comprising restoring the thread settings when a thread departs the user interface context.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SECOND PAGE OF THE ORIGINAL ASSIGNMENT INADVERTENTLY SUBMITTED AS THE SECOND PAGE OF THE DECLARATION PREVIOUSLY RECORDED ON REEL 014728 FRAME 0949. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTIVE ASSIGNMENT.. Recorded Jul 29, 2010
From: NEED, DWAYNE; HILLBERG, MICHAEL JOHN; KRAMER, NICHOLAS M.
To: MICROSOFT CORPORATION
Reel/Frame 024769/0573 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2003
From: NEED, DWAYNE; HILLBERG, MICHAEL JOHN; KRAMER, NICHOLAS M.
To: MICROSOFT CORPORATION
Reel/Frame 014728/0949 →
Continuity (1)
Related Publication 20050108719A1 · May 19, 2005