Techniques for transparently registering non-memory resources used by a program with a garbage collector so that the non-memory resources can be freed when the program is finished using them. The techniques automatically determine from the program that the execution will use a resource and then automatically modify the program's behavior so that the resource is registered. When the program is finished with the resource, it can be determined from the registry whether the resource must be freed. In one embodiment, the technique is employed in a garbage collector for doing resource garbage collection with legacy C and C++ programs. The garbage collector locates invocations that allocate such resources in the code and modifies the code so that when it is executed, the resources are registered. The techniques can also be used to ensure that finalizers associated with objects are executed before the object is freed. In this use, the invocation of the constructor for the object is modified so that the object and its finalizer are registered. When the object is no longer in use, the garbage collector uses the registry to obtain the object's finalizer, which it executes before it frees the object. Where the object represents a resource, execution of the finalizer will free the resource.

Tecniche per trasparente il registro delle risorse non-memory usate da un programma con un collettore dell'immondizia in modo da che le risorse non-memory possono essere liberate quando il programma è rifinito usando. Le tecniche determinano automaticamente a partire dal programma che l'esecuzione usi una risorsa ed allora automaticamente modifichi il comportamento del programma in moda da registrare la risorsa. Quando il programma è rifinito con la risorsa, può essere determinato a partire dalla registrazione se la risorsa debba essere liberata. In un incorporamento, la tecnica è impiegata in un collettore dell'immondizia per fare l'accumulazione dell'immondizia delle risorse con l'eredità C ed i programmi di C++. Il collettore dell'immondizia individua i invocations che stanziano tali risorse nel codice e modifica il codice in moda da quando è eseguito, registrare le risorse. Le tecniche possono anche essere usate per accertarsi che i finalizers connessi con gli oggetti siano eseguiti prima che l'oggetto sia liberato. In questo uso, il invocation del costruttore per l'oggetto è modificato in moda da registrare l'oggetto ed il relativo finalizer. Quando l'oggetto non è più in uso, il collettore dell'immondizia usa la registrazione per ottenere il finalizer dell'oggetto, che esegue prima che liberi l'oggetto. Dove l'oggetto rappresenta una risorsa, l'esecuzione del finalizer libererà la risorsa.

 
Web www.patentalert.com

< User centric program product distribution

< System and method for diagnosing and validating a machine using waveform data

> Overlay presentation of textual and graphical annotations

> Receiving apparatus that receives and accumulates broadcast contents and makes contents available according to user requests

~ 00076