System and method for reporting a synchronization event in a runtime system of a computer system
First Claim
Patent Images
1. A computer-implemented method for reporting a synchronization event in a runtime system of a computer system, the method comprising:
- monitoring, in the runtime system of the computer system, a synchronization primitive that guards a shared data structure by allowing a single thread at a time to execute a critical section of code that requires use of the shared data structure;
detecting a synchronization operation performed on the synchronization primitive by a particular thread in the runtime system that requested use of the synchronization primitive that guards the shared data structure;
incrementing an enumerator for the synchronization primitive based on a release of the synchronization primitive that is in the inflated state while refraining from incrementing the enumerator for the release of the synchronization primitive in the deflated state, the inflated state occurring based on having at least two other threads awaiting use of the synchronization primitive, the deflated state occurring based on at most one thread using the synchronization primitive and having less than two other threads awaiting use of the synchronization primitive; and
reporting, by a processor of the computer system, a synchronization event that includes data relating to the synchronization operation performed on the synchronization primitive that guards the shared data structure, the data being reported including a value of the enumerator for the synchronization primitive at a time the synchronization operation occurred.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and computer-implemented method for reporting a synchronization event in a runtime system of a computer system. A synchronization primitive in a runtime system of the computer system is monitored. A synchronization operation performed on the synchronization primitive by a thread in the runtime system is detected. An enumerator for the synchronization primitive is incremented when the synchronization operation satisfies predetermined criteria. A synchronization event that includes data relating to the synchronization operation performed on the synchronization primitive is reported.
19 Citations
18 Claims
-
1. A computer-implemented method for reporting a synchronization event in a runtime system of a computer system, the method comprising:
-
monitoring, in the runtime system of the computer system, a synchronization primitive that guards a shared data structure by allowing a single thread at a time to execute a critical section of code that requires use of the shared data structure; detecting a synchronization operation performed on the synchronization primitive by a particular thread in the runtime system that requested use of the synchronization primitive that guards the shared data structure; incrementing an enumerator for the synchronization primitive based on a release of the synchronization primitive that is in the inflated state while refraining from incrementing the enumerator for the release of the synchronization primitive in the deflated state, the inflated state occurring based on having at least two other threads awaiting use of the synchronization primitive, the deflated state occurring based on at most one thread using the synchronization primitive and having less than two other threads awaiting use of the synchronization primitive; and reporting, by a processor of the computer system, a synchronization event that includes data relating to the synchronization operation performed on the synchronization primitive that guards the shared data structure, the data being reported including a value of the enumerator for the synchronization primitive at a time the synchronization operation occurred. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for reporting a synchronization event in a runtime system of a computer system, comprising:
-
at least one processor; memory; and at least one program stored in the memory, the at least one program comprising instructions to perform operations comprising; monitoring, in the runtime system of the computer system, a synchronization primitive that guards a shared data structure by allowing a single thread at a time to execute a critical section of code that requires use of the shared data structure; detecting a synchronization operation performed on the synchronization primitive by a particular thread in the runtime system that requested use of the synchronization primitive that guards the shared data structure; incrementing an enumerator for the synchronization primitive based on a release of the synchronization primitive that is in the inflated state while refraining from incrementing the enumerator for the release of the synchronization primitive in the deflated state, the inflated state occurring based on having at least two other threads awaiting use of the synchronization primitive, the deflated state occurring based on at most one thread using the synchronization primitive and having less than two other threads awaiting use of the synchronization primitive; and reporting a synchronization event that includes data relating to the synchronization operation performed on the synchronization primitive that guards the shared data structure, the data being reported including a value of the enumerator for the synchronization primitive at a time the synchronization operation occurred. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A physical machine-readable storage device storing at least one program configured for execution by a processor of a machine, the at least one program comprising instructions that when executed by the processor cause the machine to perform operations comprising:
-
monitoring, in a runtime system of a computer system, a synchronization primitive that guards a shared data structure by allowing a single thread at a time to execute a critical section of code that requires use of the shared data structure; detecting a synchronization operation performed on the synchronization primitive by a particular thread in the runtime system that requested use of the synchronization primitive that guards the shared data structure; incrementing an enumerator for the synchronization primitive based on a release of the synchronization primitive that is in the inflated state while refraining from incrementing the enumerator for the release of the synchronization primitive in the deflated state, the inflated state occurring based on having at least two other threads awaiting use of the synchronization primitive, the deflated state occurring based on at most one thread using the synchronization primitive and having less than two other threads awaiting use of the synchronization primitive; and reporting a synchronization event that includes data relating to the synchronization operation performed on the synchronization primitive that guards the shared data structure, the data being reported including a value of the enumerator for the synchronization primitive at a time the synchronization operation occurred.
-
Specification