Cooperative process-wide synchronization
First Claim
1. A computer-implemented method of efficiently performing a process-wide operation in a multi-threaded process being executed on a computer system, the method comprising:
- initiation of the process-wide operation by an initiator thread;
assignment of an identifying number to the process-wide operation;
participation in the process-wide operation by each target thread; and
after participation, each target thread storing a copy of the identifying number so as to avoid duplicative participation.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment relates to a computer-implemented method of concurrently performing a process-wide operation in a multi-threaded process being executed on a computer system so as to result in more efficient performance of the computer system. A plurality of threads of the process concurrently participate in the process-wide operation. Finishing steps of the process-wide operation are performed by a last thread participating in the process-wide operation, regardless of whether the last thread is an initiator thread or a target thread. Other embodiments, aspects, and features are also disclosed.
13 Citations
21 Claims
-
1. A computer-implemented method of efficiently performing a process-wide operation in a multi-threaded process being executed on a computer system, the method comprising:
-
initiation of the process-wide operation by an initiator thread; assignment of an identifying number to the process-wide operation; participation in the process-wide operation by each target thread; and after participation, each target thread storing a copy of the identifying number so as to avoid duplicative participation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented method of cooperatively performing a process-wide operation in a multi-threaded process being executed on a computer system, the method comprising:
-
acquiring a process lock which is a spin lock by an initiator thread before assignment of an identifying number; releasing the process lock after the assignment of the identifying number, but before participation in the process-wide operation by target threads; and subsequently acquiring and releasing the process lock during the process-wide operation so that the process lock is held in disjointed periods over a duration of the process-wide operation. - View Dependent Claims (14, 15)
-
-
16. A computer-implemented method of concurrently performing a process-wide operation in a multi-threaded process being executed on a computer system so as to result in more efficient performance of the computer system, the method comprising:
-
concurrent participation in the process-wide operation by a plurality of threads of the process; and performance of finishing steps of the process-wide operation by a last thread participating in the process-wide operation, regardless of whether the last thread is an initiator thread or a target thread.
-
-
17. A computer system comprising:
-
at least one processor configured to execute computer-readable instructions; a memory system configured to hold computer-readable instructions and data; and an operating system comprising computer-readable instructions, wherein the instructions are configured to initiate the process-wide operation by an initiator thread, assign an identifying number to the process-wide operation, participate in the process-wide operation by each target thread, and, after participation, store a copy of the identifying number by each target thread so as to avoid duplicative participation.
-
-
18. A computer system comprising:
-
at least one processor configured to execute computer-readable instructions; a memory system configured to hold computer-readable instructions and data; and an operating system comprising computer-readable instructions, wherein the instructions are configured to acquire a process lock which is a spin lock by an initiator thread before assignment of an identifying number, release the process lock after the assignment of the identifying number, but before participation in the process-wide operation by target threads, and subsequently acquire and release the process lock during the process-wide operation so that the process lock is held in disjointed periods over a duration of the process-wide operation.
-
-
19. A computer system comprising:
-
at least one processor configured to execute computer-readable instructions; a memory system configured to hold computer-readable instructions and data; and an operating system comprising computer-readable instructions, wherein the instructions are configured to enable concurrent participation in the process-wide operation by a plurality of threads of the process, and performance of finishing steps of the process-wide operation by a last thread participating in the process-wide operation, regardless of whether the last thread is an initiator thread or a target thread.
-
-
20. A computer-implemented method of concurrently performing a process-wide operation in a multi-threaded process being executed on a computer system so as to result in more efficient performance of the computer system, the method comprising:
-
acquiring a process thread list lock by an initiator thread before participation in the process-wide operation by target threads, wherein the process thread list lock is a non-spin lock which prevents a thread list from changing; holding the process thread list lock while each of the target threads is tranversed by the initiator thread; and releasing the process thread list lock at a conclusion of the traversal whether the process wide operation is complete or not. - View Dependent Claims (21)
-
Specification