Data collisions in concurrent programs
AssigneeMicrosoft Technology Licensing, LLC
InventorsJohn Erickson, Madan Musuvathi
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Technology Licensing, LLC
InventorsJohn Erickson, Madan Musuvathi
Estimating the term…
Described are techniques for detecting data collisions between a first portion and a second portion of an application executing on a computer, the first portion and the second portions executing concurrently with respect to each other. While the first portion and second portion are executing, before the first portion accesses a memory location shared by the first portion and the second portion, a value stored in the memory location is captured and the first portion is delayed. While the second portion continues to execute the first portion is delayed. After a period of the first portion having been paused or slowed, the current content of the memory location is compared with the captured content to determine if there is a data collision. The first and second portions may be threads, and the capturing, delaying, and determining may be performed by code inserted to the application after it has been compiled.
A method of testing for potential data collisions between a first thread and a second thread of an application executing on a computer, the first thread and the second thread configured to execute concurrently with respect to each other, the method comprising:
A computer-readable storage device storing information to enable a computer to perform a process, wherein the computer-readable storage device is not a signal, the process comprising:
A method of detecting a data collision over shared data that is shared by concurrently executing first and second threads of an application, the first thread and the second thread both having code that accesses shared data without a lock, the method comprising:
Dependencies are inferred from the claim text.