From: Jeremy Henty Date: 2010-03-07T19:00:59+09:00 Subject: Weakref: can I use it like this? I want to do some extended processing on an object referred to by a weakref. This might generate lots of garbage so I don't want to turn off garbage collection while I'm doing this. So I'd really like to get a proper non-weak reference to the weakref-ed object (assuming it's not *already* garbage-collected). Is it safe to do this? obj = weakref.__getobj__ # will raise error if weakref is invalid process obj I'm hoping this will ensure that if the process method is called then it gets a real reference to the weakref-ed object, so that it can safely execute even though garbage collection is still on. I'm also hoping that once the binding of the obj variable goes out of scope then the object is available for garbage collection again. Will this work as I expect? Is it thread-safe? Portable across different Ruby implementations? Have I missed some race condition? Regards, Jeremy Henty