Abstract:
Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.
Abstract:
A variety of mechanisms are disclosed for a dynamically binding native methods in an interpreted bytecode program to functions that are contained in compiled code, such as a dynamically linked library. In one implementation, a shared function is specified by means of a naming convention that is appropriate for the bytecode interpreted program, such as a package of classes. When a native method is to be resolved during loading of a class, the name of the package is examined to see if the method resides in a shared library. If so, it is loaded using techniques that are specific to the compiled code in which the library exists. In another embodiment, a designated base class, or interface, is used to identify the method by which the shared library is to be loaded. In a third type of implementation, a given method requests a class to specify which libraries it needs to be linked to, as it is being loaded, after which the libraries are loaded and the class methods are linked to them.
Abstract:
Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.
Abstract:
Associative references in a garbage collected programming environment is disclosed. An indication that an object is not reachable from any root object. The object is kept alive if it is determined by a garbage collection process, based at least in part on data other than data comprising the object or managed by an application with which the object is associated, that the object is associated with at least one other object that has been determined to be reachable.
Abstract:
Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.
Abstract:
Per thread garbage collection is disclosed. Objects associated only with a thread that created them are tracked. At a garbage collection time for a particular thread, it is determined which objects associated only with that thread remain reachable from a restricted root set associated with the thread. Any thread-only objects that are not determined to be reachable are garbage collected.
Abstract:
Associative references in a garbage collected programming environment is disclosed. An indication that an object is not reachable from any root object. The object is kept alive if it is determined by a garbage collection process, based at least in part on data other than data comprising the object or managed by an application with which the object is associated, that the object is associated with at least one other object that has been determined to be reachable.
Abstract:
Associative references in a garbage collected programming environment is disclosed. An indication that an object is not reachable from any root object. The object is kept alive if it is determined by a garbage collection process, based at least in part on data other than data comprising the object or managed by an application with which the object is associated, that the object is associated with at least one other object that has been determined to be reachable.
Abstract:
When an object-oriented program calls a native SOM method, a data structure is created for handling exceptions. If an exception occurs during the execution of the SOM method, data values relating to the exception are placed in the data structure, and it is labeled to identify its type. This label is used to select a class within the object-oriented program having properties similar to the exception. An instance of this class is allocated, and the exception data is copied into the object, which can then be used to generate an exception within the object-oriented program.
Abstract:
When a method implemented in native compiled code is called from a object-oriented program, the parameters associated with that method are marshaled to convert them from the format of the object-oriented code into one which is appropriate for the compiled code. The marshaling of parameters is carried out in dependence upon the particular type of object with which the parameters are associated. When an aggregate object is marshaled, a pointer to the object is adjusted to point directly to variables for an instance of that object. When an array is marshaled, the pointer is adjusted to point to its individual elements.