System and Method for Stability Guarantees in Concurrent Software
AssigneeiAnywhere Solutions, Inc.
InventorDaniel James Farrar
Life of this patent
Estimating the term…
Abstract
A flexible, extensible and efficient compile-time mechanism that leverages native high-level application programming language constructs (e.g., the template and macro features of C++), thus minimizing any programmer or a software developer learning curve and eliminating the need for programming tool (e.g., compiler) changes, to identify and control aspects of shared resource access in concurrent software at the time of source code compilation.
Claims18
A computer-implemented method for ensuring, during compilation, that a body of multi-threaded application source code is not susceptible to deadlock, the method comprising:
- identifying a plurality of shared resources within the body of multi-threaded application source code;
- identifying a plurality of access control mechanisms for managing access to the plurality of shared resources;
- tracking, on a detection of an object entering scope, one or more invocations of the plurality of access control mechanisms, yielding a shared resource acquisition pattern;
- tracking, on a detection of the object leaving scope, one or more invocations of the plurality of access control mechanisms, yielding a shared resource release pattern;
- and
- generating an alert when the shared resource acquisition pattern differs, beyond a predetermined threshold, from the shared resource release pattern.
A computer program product embodied on a computer readable medium, the computer readable medium having instructions stored thereon that when executed by a processor, cause the processor to perform operations to ensure, during compilation, that a body of multi-threaded application source code is not susceptible to deadlock, the operations comprising:
- identifying a plurality of shared resources within the body of multi-threaded application source code;
- identifying a plurality of access control mechanisms for managing access to the plurality of shared resources;
- tracking, on a detection of an object entering scope, one or more invocations of the plurality of access control mechanisms, yielding a shared resource acquisition pattern;
- tracking, on a detection of the object leaving scope, one or more invocations of the plurality of access control mechanisms, yielding a shared resource release pattern;
- and
- generating an alert when the shared resource acquisition pattern differs, beyond a predetermined threshold, from the shared resource release pattern.
A system for ensuring that a body of multi-threaded application source code is not susceptible to deadlock, the system comprising:
- one or more processors;
- one or more computer readable media;
- and
- computer readable instructions on the one or more computer readable media which, when executed by the one or more processors, cause the one or more processors to ensure, during compilation, that a body of multi-threaded application source code is not susceptible to deadlock, by at least:
- tracking, on a detection of an object entering scope, one or more invocations of a plurality of access control mechanisms, yielding a shared resource acquisition pattern;
- tracking, on a detection of the object leaving scope, one or more invocations of the plurality of access control mechanisms, yielding a shared resource release pattern;
- and
- generating an alert when the shared resource acquisition pattern differs, beyond a predetermined threshold, from the shared resource release pattern.
Dependencies are inferred from the claim text.