Abstract:
Techniques for causing a compiler to organize code pertaining to data that is not constant, but that is unlikely to change except in relatively infrequent situations, in an improved manner. A class containing data that may have more than one value, but which will have a particular value in the typical case, is now split into two parts, a first class which uses the more-likely data value as a constant, and a second class (designed as a subclass of the first class) that uses the data value as a variable capable of having either the more-likely value or other, less-likely values. The compiler generates assembly code comprising instructions pertaining to the more-likely data value, and also generates assembly code capable of processing the less-likely data values. This latter code, however, is initially unreachable. The compiler-generated assembly code will be programmatically patched, at run time, if any of the less-likely data values occur, thereby dynamically making the code reachable. Once the initially-unreachable code becomes reachable, it will be used thereafter (regardless of the setting of the data value).
Abstract:
A computer implemented method, apparatus, and computer usable program product for system management. The process schedules a set of application tasks to form a schedule of tasks in response to receiving the set of application tasks from a registration module. The process then performs a feasibility analysis on the schedule of tasks to identify periods of decreased system activity. Thereafter, the process schedules a set of system management tasks during the periods of decreased system activity to form a prioritized schedule of tasks.
Abstract:
The illustrative embodiments described herein provide a computer-implemented method, apparatus, and computer program product for managing variable assignments in a program. The process identifies a set of variable assignments that is live on a portion of paths to form a set of identified variable assignments. Each of the set of identified variable assignments assign a value to at least one variable of a set of variables. The process determines a set of program points at which the set of identified variable assignments is live on all paths. The process also moves the set of identified variable assignments to the set of program points in response to determining that the set of identified variable assignments is movable to the set of program points.
Abstract:
The illustrative embodiments described herein provide a computer-implemented method, apparatus, and computer program product for updating references to objects. The process identifies a set of references associated with a set of live objects at a garbage collection safe point in response to detecting the garbage collection safe point. The set of live objects are at a set of first locations in a storage device. The process updates the set of references such that the set of references refer to a set of second locations of the set of live object in response to detecting a garbage collection operation. The set of second locations is in the storage device.
Abstract:
Based on operations within an uncounted loop of source code, one or more calculations are generated for determining, at runtime, an expected number of iterations through which the uncounted loop can iterate before encountering an exception corresponding to at least one target exception check. A copy of the uncounted loop omitting each target exception check is generated. The uncounted loop, the copy of the uncounted loop, and the one or more calculations are arranged in compiled code so that at runtime program flow enters the copy of the uncounted loop. If a maximum number of iterations of the copy of the uncounted loop is reached, program flow proceeds from the copy of the uncounted loop to the uncounted loop. The maximum number of iterations is no more than the smallest member of a set consisting of the expected number of iterations for each target exception check.
Abstract:
An improved system and computer programming product for acquisition and release of locks within a software program is disclosed. In an exemplary embodiment, a lock within a loop is transformed by relocating acquisition and release instructions from within the loop to positions outside the loop. This may significantly decrease unnecessarily lock acquisition and release during execution of the software program. In order to avoid contention problems which may arise from acquiring and keeping a lock on an object over a relatively long period of time, a contention test may be inserted into the loop. Such a contention test may temporarily release the lock if another thread in the software program requires access to the locked object.
Abstract:
There is provided a nasal dispensing nozzle for use with a fluid medicament discharge pump device having a discharge outlet for discharge of pumped fluid medicament, the nasal dispensing nozzle comprising a body defining a fluid flow channel; an inlet port defining an inlet to said channel, said inlet port shaped for receipt of said discharge outlet to enable delivery of said pumped fluid medicament to the channel; and an outlet port defining an outlet from the channel. The channel is shaped to impart acceleration and angular momentum to the pumped fluid medicament. The body is comprised of a mating assembly of like component parts and suitably, defines a cylindrical form.
Abstract:
A code region forming part of a computer program is modified during execution of the computer program by a plurality of threads. In one aspect, identical modification instructions are provided to each thread for modifying a site in the code region having a desirable idempotent atomic modification, and the modification instructions direct each thread to make the desirable idempotent atomic modification. In another aspect, a thread is selected to modify the code region, each thread other than the selected thread is directed to execute an alternative execution path that generates output identical to the output of the code region after the code region has been modified, and, responsive to directing each thread other than the selected thread, the selected thread is directed to modify the code region.
Abstract:
A vehicle email notification system and method in which templates are used to automatically generate email messages that provide the recipient with diverse types of dynamic vehicle information. The email notifications are triggered by different events, some of which are independent of the vehicle (e.g., a monthly trigger), and others of which occur at the vehicle, such as a mileage or low oil life trigger. The notification system selects an appropriate template based on the type of trigger and uses that template to build and send to the subscriber an email message that contains the dynamic vehicle information and identifies any detected vehicle condition for which action is needed. In addition to trigger type, different templates can be defined for each combination of vehicle type (e.g., make of vehicle), trigger type, and a language preference (e.g., English, Spanish).
Abstract:
An assembly including a door panel, a window regulator housing component, and a window regulator drive system component. The door panel is secured to the window regulator housing component by a deformed portion to provide a subassembly. The deformed portion is utilized to releaseably secure the window regulator drive system component to the subassembly via a fourth component.