[Ironruby-core] Adding a finalizer to a ruby object

Ivan Porto Carrero ivan at flanders.co.nz
Mon Jan 11 02:59:25 EST 2010


I specifically wanted to find a counterpart for this C#

public class SomeClass {

   private object _unmanagedResource;

   public SomeClass(object unmanagedResource){
     _unmanagedResource = unmanagedResource;
   }

  ~SomeClass(){
    _unmanagedResource.Cleanup();
    _unmanagedResource = null;
  }
}

I was writing about the dispose pattern and wanted to include a full
counterpart implementation with a finalizer for unmanaged resources.

---
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto Carrero
Blog: http://flanders.co.nz
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)



On Mon, Jan 11, 2010 at 6:12 AM, Sam Clopton <lists at ruby-forum.com> wrote:

> Ivan Porto carrero wrote:
> > Hi
> >
> > How do I add a finalizer to a ruby object?
> >
> > I've tried using ObjectSpace and define_finalizer.
> > But the proc never got executed when I called
> > ObjectSpace.garbage_collect
> > Calling System::GC.collect had the same outcome
> >
> > and implementing a Finalize method doesn't seem to have any effect
> > either
> >
> > class MyClass
> >
> >   def Finalize
> >     puts "in Finalize"
> >   end
> >
> >   def finalize
> >     puts "in lower finalize"
> >   end
> >
> > end
>
>
> What about using a proc, or block and running finalize after yield or
> proc.call?
>
> -Sam
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100111/0c6c35b3/attachment.html>


More information about the Ironruby-core mailing list