IP Library Granted Patent US 7,069,396
Granted Patent B2
US 7,069,396 · App. 10/184,863 · Granted Jun 27, 2006

Deferred memory allocation for application threads

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,069,396
App. No.
10/184,863
Granted
Jun 27, 2006
Kind
B2
Abstract

Various systems and methods are provided that facilitate deferred memory allocation. In one method, an attempt to allocate an amount of memory for an application thread is made. If the attempt was unsuccessful and if the application thread is designated for deferred memory allocation, then the application thread is stored in a holding queue. Once the application thread is stored in the holding queue, periodic attempts are made to reallocate the amount of memory for the application thread.

Claims (41)

1. A method for providing deferred memory allocation, comprising:

attempting to allocate an amount of memory for an application thread;

storing the application thread in a holding queue if the attempt to allocate the amount of memory was unsuccessful and if the application thread is designated for a deferred memory allocation; and

periodically attempting to reallocate the amount of memory for the application thread while the application thread is stored in the holding queue.

2. The method of claim 1 , further comprising determining whether the application thread is designated for the deferred memory allocation upon an occurrence of an unsuccessful attempt to allocate the amount of memory for the application thread.

3. The method of claim 1 , further comprising returning a memory pointer to an application associated with the application thread upon a successful allocation of the amount of memory.

4. The method of claim 1 , further comprising returning a failure to allocate the amount of memory to an application that originated the application thread if the attempt to allocate the amount of memory was unsuccessful and if the application thread is not designated for the deferred memory allocation.

5. The method of claim 1 , further comprising designating the application thread for the deferred memory allocation, wherein a storage timeout is associated with the application thread that indicates a maximum period of time that the application thread can be stored in the holding queue.

6. The method of claim 5 , further comprising: returning a failure to allocate the amount of memory to the application when the storage timeout has expired without the amount of memory being allocated for the application thread; and removing the application thread from the holding queue.

7. The method of claim 1 , further comprising designating the application thread for the deferred memory allocation, wherein the deferred memory allocation further comprises a designation for an indefinite storage in the holding queue.

8. The method of claim 7 , wherein the storing of the application thread in the holding queue if the attempt to allocate the amount of memory was unsuccessful and if the application thread is designated for the deferred memory allocation further comprises indefinitely storing the application thread in the holding queue until an occurrence of a successful attempt to reallocate the amount of memory for the application thread.

9. A program embodied in a computer readable storage medium for providing deferred memory allocation, comprising:

code that attempts to allocate an amount of memory for an application thread;

code that stores the application thread in a holding queue if the attempt to allocate the amount of memory was unsuccessful and if the application thread is designated for a deferred memory allocation; and

code that periodically attempts to reallocate the amount of memory for the application thread while the application thread is stored in the holding queue.

10. The program embodied in a computer readable storage medium of claim 9 , further comprising code that determines whether the application thread is designated for the deferred memory allocation upon an occurrence of an unsuccessful attempt to allocate the amount of memory for the application thread.

11. The program embodied in a computer readable storage medium of claim 9 , further comprising code that returns a memory pointer to an application associated with the application thread upon a successful allocation of the amount of memory.

12. The program embodied in a computer readable storage medium of claim 9 , further comprising code that returns a failure to allocate the amount of memory to an application that originated the application thread if the attempt to allocate the amount of memory was unsuccessful and if the application thread is not designated for the deferred memory allocation.

13. The program embodied in a computer readable storage medium of claim 9 , further comprising code that designates the application thread for the deferred memory allocation, wherein a storage timeout is associated with the application thread that indicates a maximum period of time that the application thread can be stored in the holding queue.

14. The program embodied in a computer readable storage medium of claim 13 , further comprising: code that returns a failure to allocate the amount of memory to the application when the storage timeout has expired without the amount of memory being allocated for the application thread; and code that removes the application thread from the holding queue.

15. The program embodied in a computer readable storage medium of claim 9 , further comprising code that designates the application thread for the deferred memory allocation, wherein the deferred memory allocation further comprises a designation for an indefinite storage in the holding queue.

16. An apparatus for providing deferred memory allocation, comprising:

a processor circuit having a processor and a memory;

deferred memory allocation logic stored in the memory and executable by the processor, the deferred memory allocation logic comprising:

logic that attempts to allocate an amount of memory for an application thread;

logic that stores the application thread in a holding queue if the attempt to allocate the amount of memory was unsuccessful and if the application thread is designated for a deferred memory allocation; and

logic that periodically attempts to reallocate the amount of memory for the application thread while the application thread is stored in the holding queue.

17. The apparatus of claim 16 , wherein the deferred memory allocation logic further comprises logic that determines whether the application thread is designated for the deferred memory allocation upon an occurrence of an unsuccessful attempt to allocate the amount of memory for the application thread.

18. The apparatus of claim 16 , wherein the deferred memory allocation logic further comprises logic that returns a memory pointer to an application associated with the application thread upon a successful allocation of the amount of memory.

19. The apparatus of claim 16 , wherein the deferred memory allocation logic further comprises logic that returns a failure to allocate the amount of memory to an application that originated the application thread if the attempt to allocate the amount of memory was unsuccessful and if the application thread is not designated for the deferred memory allocation.

20. The apparatus of claim 16 , wherein the deferred memory allocation logic further comprises logic that designates the application thread for the deferred memory allocation, wherein a storage timeout is associated with the application thread that indicates a maximum period of time that the application thread can be stored in the holding queue.

21. The apparatus of claim 20 , wherein the deferred memory allocation logic further comprises: logic that returns a failure to allocate the amount of memory to the application when the storage timeout has expired without the amount of memory being allocated for the application thread; and logic that removes the application thread from the holding queue.

22. The apparatus of claim 16 , wherein the deferred memory allocation logic further comprises logic that designates the application thread for the deferred memory allocation, wherein the deferred memory allocation further comprises a designation for an indefinite storage in the holding queue.

23. An apparatus for providing deferred memory allocation, comprising:

means for attempting to allocate an amount of memory for an application thread;

means for storing the application thread in a holding queue if the attempt to allocate the amount of memory was unsuccessful and if the application thread is designated for a deferred memory allocation; and

means for periodically attempting to reallocate the amount of memory for the application thread while the application thread is stored in the holding queue.

24. The apparatus of claim 23 , further comprising means for determining whether the application thread is designated for the deferred memory allocation upon an occurrence of an unsuccessful attempt to allocate the amount of memory for the application thread.

25. The apparatus of claim 23 , further comprising means for returning a memory pointer to an application associated with the application thread upon a successful allocation of the amount of memory.

26. The apparatus of claim 23 , further comprising means for returning a failure to allocate the amount of memory to an application that originated the application thread if the attempt to allocate the amount of memory was unsuccessful and if the application thread is not designated forte deferred memory allocation.

27. The apparatus of claim 23 , further comprising means for designating the application thread for the deferred memory allocation, wherein a storage timeout is associated with the application thread that indicates a maximum period of time that the application thread can be stored in the holding queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2012
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HTC CORPORATION
Reel/Frame 027531/0218 →