← Back to Patent Explorer
US6167424A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for concurrent thread synchronization

Assignee: Oracle America Inc
•
Filing: 1997-10-27
•
Granted: 2000-12-26
•
Expires: 2017-10-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Methods and apparatus for locking and unlocking objects using synchronized threads are disclosed. According to one aspect of the present invention, a computer-implemented method for using a first thread to obtain a header value of an object includes replacing contents of a header of the object with a sentinel which identifies an execution stack associated with the first thread. Once the object contents are replaced with the sentinel, a determination is made regarding whether the object contents include a header value of the object, and when it is determined that the object contents do not include the header value of the object, a determination is made as to when the object is in the process of being studied by a second thread. In one embodiment, when it is determined that the object is not in the process of being studied by the second thread, the method involves adding the first thread to a list associated with the stack.

Inventors

  • 👤 Lars Bak
  • 👤 Timothy G. Lindholm

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 13:16
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/44; G06F9/448; G06F9/4488; G06F9/52; Y; Y10; Y10S; Y10S707/00; Y10S707/953; Y10S707/955; Y10S707/99931; Y10S707/99938; Y10S707/99941; Y10S707/99944

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 94 words
A computer-implemented method for obtaining a header value of an object using a first thread, the object including an object header, the first thread having an associated execution stack and having a first thread execution priority, the method comprising: a) replacing contents of the object header with a sentinel which identifies the stack; b) determining whether the contents include a header value of the object; and c) when it is determined that the contents do not include the header value of the object, determining when the object is being studied by a second thread.
Claim 2
Dependent Claim 94 words
A computer-implemented method for obtaining a header value of an object using a first thread, the object including an object header, the first thread having an associated execution stack and having a first thread execution priority, the method comprising: a) replacing contents of the object header with a sentinel which identifies the stack; b) determining whether the contents include a header value of the object; and c) when it is determined that the contents do not include the header value of the object, determining when the object is being studied by a second thread.
Claim 3
Dependent Claim 67 words
A computer-implemented method as recited in claim 1 wherein when it is determined that the object is not in the process of being studied by the second thread, the method further includes: adding the first thread to a list associated with the stack, the list being arranged to indicate that the first thread is awaiting access to the object; and returning the contents to the object header.
Claim 4
Dependent Claim 25 words
A computer-implemented method as recited in claim 1 further including: receiving a notification for the first thread to access the object; and repeating steps a)-c).
Claim 5
Dependent Claim 59 words
A computer-implemented method as recited in claim 1 wherein when it is determined that the object is in the process of being studied by the second thread, the method further includes: resolving the contents to identify the second thread; determining whether a second thread execution priority associated with the second thread is less than the first thread execution priority.
Claim 6
Dependent Claim 43 words
A computer-implemented method as recited in claim 4 wherein when it is determined that the second thread execution priority is less than the first thread execution priority, the method further includes boosting the second thread execution priority to the first thread execution priority.
Claim 7
Dependent Claim 57 words
A computer-implemented method as recited in claim 5 further including: incrementing a counter associated with the second thread to indicate that the second thread execution priority has been boosted; adding the second thread and the counter to a queue of boosted threads, the queue of boosted threads being associated with the first thread; and repeating steps a)-c).
Claim 8
Dependent Claim 52 words
A computer-implemented method as recited in claim 1 wherein when it is determined that the contents include the header value, the method further includes: storing the contents on the stack in a particular location; and storing a pointer in the object header, wherein the pointer is arranged to identify the particular location.
Claim 9
Dependent Claim 34 words
A computer-implemented method as recited in claim 7 further including unboosting a second thread execution priority of the second thread, wherein the second thread execution priority was boosted to the first thread execution priority.
Claim 10
Dependent Claim 35 words
A computer-implemented method as recited in claim 8 wherein unboosting the second thread execution priority of the second thread involves unboosting the second thread execution priority to an assigned execution priority of the second thread.
Claim 11
Dependent Claim 13 words
A computer-implemented method as recited in claim 1 further including constructing the sentinel.
Claim 12
Dependent Claim 103 words
A computer-implemented method for returning a header value of an object to the object, the header value being stored on an execution stack associated with a first thread, the object including an object header, the first thread having a first thread execution priority, the method comprising: a) exchanging contents of the object header for a sentinel arranged to identify the execution stack; and b) using the contents to determine if the object is being studied by a second thread; and c) when it is determined that the object is not being studied by the second thread, replacing the sentinel with the header value.
Claim 13
Dependent Claim 103 words
A computer-implemented method for returning a header value of an object to the object, the header value being stored on an execution stack associated with a first thread, the object including an object header, the first thread having a first thread execution priority, the method comprising: a) exchanging contents of the object header for a sentinel arranged to identify the execution stack; and b) using the contents to determine if the object is being studied by a second thread; and c) when it is determined that the object is not being studied by the second thread, replacing the sentinel with the header value.
Claim 14
Dependent Claim 55 words
A computer-implemented method as recited in claim 11 wherein when it is determined that the object is being studied by the second thread, the method further includes: resolving the contents to identify the second thread; determining whether a second thread execution priority associated with the second thread is less than the first thread execution priority.
Claim 15
Dependent Claim 43 words
A computer-implemented method as recited in claim 12 wherein when it is determined that the second thread execution priority is less than the first thread execution priority, the method further includes boosting the second thread execution priority to the first thread execution priority.
Claim 16
Dependent Claim 57 words
A computer-implemented method as recited in claim 13 further including: incrementing a counter associated with the second thread to indicate that the second thread execution priority has been boosted; adding the second thread and the counter to a queue of boosted threads, the queue of boosted threads being associated with the first thread; and repeating steps a)-c).
Claim 17
Dependent Claim 144 words
A computer program product for associating an object with a first thread, the object including an object header, the first thread having an associated stack allocated in a memory associated with a computer system, the computer program product comprising: computer code that obtains contents of the object header; and computer code that stores the contents of the object header at a first location within the stack; computer code that stores a reference indicator in the object header, the reference indicator being arranged to identify the stack; computer code that determines when the contents of the object header do not include a header value; computer code that determines when the object is in the process of being studied by a second thread when the contents of the object header do not include the header value; and a computer readable medium that stores the computer codes.
Claim 18
Dependent Claim 144 words
A computer program product for associating an object with a first thread, the object including an object header, the first thread having an associated stack allocated in a memory associated with a computer system, the computer program product comprising: computer code that obtains contents of the object header; and computer code that stores the contents of the object header at a first location within the stack; computer code that stores a reference indicator in the object header, the reference indicator being arranged to identify the stack; computer code that determines when the contents of the object header do not include a header value; computer code that determines when the object is in the process of being studied by a second thread when the contents of the object header do not include the header value; and a computer readable medium that stores the computer codes.
Claim 19
Dependent Claim 22 words
A computer program product according to claim 15 wherein the computer readable medium is a data signal embodied in a carrier wave.
Claim 20
Dependent Claim 33 words
A computer program product according to claim 15 further including computer code that updates a status indicator associated with the object to indicate that the reference indicator is stored in the object header.
Claim 21
Dependent Claim 47 words
A computer program product according to claim 17 wherein the contents of the object header are the header value, and the computer code that updates the status indicator includes computer code that updates the status indicator to indicate that the object is accessible to the first thread.
Claim 22
Dependent Claim 59 words
A computer program product according to claim 15 wherein the reference is a sentinel, the computer program product further including: computer code that stores a forwarding pointer in the object header when it is determined that the contents of the object header are the header value, the forwarding pointer being arranged to identify the first location within the stack.
Claim 23
Dependent Claim 82 words
A computer program product according to claim 19 further including: computer code that returns the contents of the object header to the object header when it is determined that the contents of the object header are not the header value; and computer code that updates a status indicator associated with the object to indicate that the contents of the object header are in the object header when it is determined that the contents of the object header are not the header value.
Claim 24
Dependent Claim 44 words
A computer program product according to claim 19 further including computer code that determines whether the contents of the object header identify a second location within the stack when it is determined that the contents of the object header are not a header value.
Claim 25
Dependent Claim 87 words
A computer program product according to claim 21 further including: computer code that returns the contents of the object header to the object header when the contents of the object header identify a second location within the stack; and computer code that stores an indicator value in the first location within the stack when the contents of the object header identify a second location within the stack, the indicator value being arranged to indicate that the header value is stored in the second location within the stack.
Claim 26
Dependent Claim 141 words
A computer system including a memory which includes a plurality of threads, each of the plurality of threads having an associated stack, the computer system comprising: a processor coupled to the memory; and an object including an object header, the object header being arranged to contain a header value which includes information relating to the object, wherein a first thread selected from the plurality of threads is arranged to obtain the header value and to place a first reference indicator in the object header, the first reference indicator being arranged to identify the stack associated with the first thread; and a second thread selected from the plurality of threads, the second thread being arranged to obtain the reference indicator from the object header and to use the reference indicator to determine that the object is not available to the second thread.
Claim 27
Dependent Claim 141 words
A computer system including a memory which includes a plurality of threads, each of the plurality of threads having an associated stack, the computer system comprising: a processor coupled to the memory; and an object including an object header, the object header being arranged to contain a header value which includes information relating to the object, wherein a first thread selected from the plurality of threads is arranged to obtain the header value and to place a first reference indicator in the object header, the first reference indicator being arranged to identify the stack associated with the first thread; and a second thread selected from the plurality of threads, the second thread being arranged to obtain the reference indicator from the object header and to use the reference indicator to determine that the object is not available to the second thread.
Claim 28
Dependent Claim 31 words
A computer system as recited in claim 23 wherein the object includes a status indicator that is arranged to indicate that the first reference indicator is stored in the object header.
Claim 29
Dependent Claim 39 words
A computer system as recited in claim 23 wherein the stack associated with the first thread is arranged to store the header value in a first location, wherein the first reference indicator is arranged to identify the first location.
Claim 30
Dependent Claim 97 words
A computer system as recited in claim 23 wherein the second thread is arranged to place a second reference indicator in the object header, the second reference indicator being arranged to identify the stack associated with the second thread, the computer system further including a third thread selected from the plurality of threads which is arranged to obtain the second reference indicator from the object header, the third thread further being arranged to place a third reference indicator in the object header, the third reference indicator being arranged to identify the stack associated with the third thread.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-12-26 2004-06-26 2004-12-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-12-26 2008-06-26 2008-12-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-12-26 2012-06-26 2012-12-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag