Dynamically allocated thread-local storage

US9354932B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9354932-B2
Application numberUS-201113165421-A
CountryUS
Kind codeB2
Filing dateJun 21, 2011
Priority dateJun 21, 2011
Publication dateMay 31, 2016
Grant dateMay 31, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamically allocated thread-local instance corresponds with the table slot.

First claim

Opening claim text (preview).

What is claimed is: 1. A dynamically allocated thread storage in a computing device having a memory, comprising: a plurality of threads included in the memory, wherein each thread includes a statically allocated thread-local slot defined in source code, the thread-local slots each having a table including a plurality of table slots each configured to store a respective thread local value for a particular thread-local variable within the same slot position for each of the plurality of tables; and a dynamically allocated thread-local instance configured in the memory, the dynamically allocated thread-local instance contains a linked list of allocated thread local slots within the same position of the plurality of tables of the thread local slots and represents the respective values associated with a particular thread local variable, wherein the dynamically allocated thread-local instance is dynamically released during runtime and when the instance is released, indicating the allocated thread local table slot associated with the linked list for removal while preserving the value for other threads of the plurality of threads. 2. The dynamically allocated thread storage of claim 1 wherein the plurality of statically allocated table slots are configured to store a plurality of dynamically allocated thread-local values of a plurality of dynamically allocated thread-local instances. 3. The dynamically allocated thread-local storage of claim 1 wherein the dynamically allocated local thread instance enumerates the stored values. 4. The dynamically allocated thread-local storage of claim 1 wherein each table includes a plurality of table slots at a location in each thread, and wherein the dynamically allocated thread instance services each location. 5. The dynamically allocated thread-local storage of claim 4 and further comprising a plurality of dynamically allocated thread instances each at a separate location in each thread. 6. The dynamically allocated thread-local storage of claim 4 wherein the dynamically allocated thread instance includes a linked list corresponding with each location storing a dynamically allocated thread-local value. 7. The dynamically allocated thread-local storage of claim 6 wherein the linked list is configured to indicate values during a cleanup routine. 8. The dynamically allocated thread-local storage of claim 7 wherein the linked list includes nodes added to each dynamically allocated thread-local value. 9. The dynamically allocated thread-local storage of claim 8 wherein the nodes are configured to store the dynamically allocated thread-local value when the thread exits. 10. The dynamically allocated thread-local storage of claim 7 wherein each thread includes a helper cleanup routine configured to clean up the table. 11. The dynamically allocated thread-local storage of claim 7 wherein each thread includes another statically allocated thread-local slot configured to store the helper cleanup routine. 12. A method of dynamically allocating thread storage in a computing device having a memory, the method comprising: processing a plurality of threads included in the memory, wherein each thread includes a statically allocated thread-local slot defined in source code, the thread-local slots each having a table including a plurality of table slots each configured to store a respective thread local value for a particular thread-local variable within the same slot position for each of the plurality of tables generating a dynamically allocated thread-local instance configured in the memory, the dynamically allocated thread-local instance contains a linked list of allocated thread local slots within the same position of the plurality of tables of the thread local slots and represents the respective values associated with a particular thread local variable; and releasing the dynamically allocated thread-local instance during runtime and when the instance is released, indicating the allocated thread local table slot associated with the linked list for removal while preserving the value for other threads of the plurality of threads. 13. The method of claim 12 wherein the plurality of table slots each configured to store a dynamically allocated thread-local value of a plurality of dynamically allocated thread-local variables. 14. The method of claim 13 wherein the dynamically allocated thread-local instance includes a selected table slot in each of the plurality of threads. 15. The method of claim 14 comprising a plurality of dynamically allocated thread-local instances, wherein each of the plurality of dynamically allocated thread-local instance include a separate selected table slot in each of the plurality of threads. 16. The method of claim 15 wherein the dynamically allocated thread-local instance of the plurality of dynamically allocated thread-local instances includes a linked list having a node added to each value in the selected slots. 17. The method of claim 15 comprising removing one of the plurality of thread-local instances including removing values stored in the selected table slots. 18. A computer readable storage medium, which does not include transitory propagating signals, storing a platform including computer executable instructions for controlling a computing device, the platform configured to perform a method comprising: processing a plurality of threads wherein each thread includes a statically allocated thread-local slot defined in a source code, the thread-local slots each having a table including a plurality of table slots each configured to store a respective thread-local value for a particular thread-local variable within the same slot position for each of the plurality of tables; generating a dynamically allocated thread-local instance containing a linked list of allocated thread local slots with the same position of the plurality of tables of the thread local variable; and releasing the dynamically allocated thread-local instance during runtime and the when the instance is released, indicating the allocated thread-local table slot associated with the linked list for removal while preserving the value for other threads of the plurality of threads. 19. The computer readable storage medium of claim 18 , the method comprising enumerating values of the dynamically allocated local thread instance. 20. The computer readable storage medium of claim 18 wherein the linked list includes a node added to each table slot including a dynamically allocated thread-local value and the method comprising storing the dynamically allocated thread-local value in the node before releasing the table to remove the thread of the plurality of threads.

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9354932B2 cover?
Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamicall…
Who is the assignee on this patent?
Ostrovsky Igor, Hoag Joseph E, Toub Stephen H, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/5016. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 31 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).