[#403837] Why none of the block giving the expected output with the "enumerator"? — Arup Rakshit <lists@...>

Why none of the block giving the expected output with the "enumerator"?

9 messages 2013/02/02

[#403870] Confusion with Enum#with_object block argument construct — Arup Rakshit <lists@...>

C:\>irb

9 messages 2013/02/03

[#403920] Character classes use in Ruby — Love U Ruby <lists@...>

Can anyone help me by giving an explanatory example of each of the

13 messages 2013/02/04

[#403935] How to stop page loading using selenium-web driver? — Love U Ruby <lists@...>

How to stop page loading using selenium-web driver?

11 messages 2013/02/04

[#403972] Ruby could recognize the values when putting into a webpage text filed. — Love U Ruby <lists@...>

SGksCgpJIGhhdmUgc29tZSB2YWx1ZXMgaW4gbXkgRXhjZWwgYXMgYmVsb3c6

9 messages 2013/02/05

[#403986] old syntax? what's going on here — tamouse mailing lists <tamouse.lists@...>

I have this in a _spec.rb file: (a gem I inherited at work)

11 messages 2013/02/05

[#404005] Implementing DRY with a function call — Rob Marshall <lists@...>

Hi,

12 messages 2013/02/05

[#404006] using an instance variable inside a method — FirstName Surname <lists@...>

Hello.

19 messages 2013/02/05

[#404021] Not able get the label text incurred with <input> element — Love U Ruby <lists@...>

I do have a below `HTML`:

18 messages 2013/02/05

[#404025] Symbol.defined? — Student Jr <lists@...>

Symbol deserialization from external sources is now known to be

15 messages 2013/02/06

[#404058] Ruby 1.9.3-p362 on Mac OSX — Peter Bailey <lists@...>

Hi,

13 messages 2013/02/06

[#404082] Problem building Ruby 1.9.3 patchlevel 385 under AIX 7.1 — Ruby Student <ruby.student@...>

Hello World!

10 messages 2013/02/06

[#404101] Issues from an extreme beginner — Bruce Palmer <lists@...>

Hey guys, great to be part of such a great community! I look forward to

19 messages 2013/02/07
[#404104] Re: Issues from an extreme beginner — Bruce Palmer <lists@...> 2013/02/07

Ahh, thank you Matthew! That was just the push I needed!

[#404208] elegant way to determine if something is defined — tamouse mailing lists <tamouse.lists@...>

Something like:

15 messages 2013/02/10

[#404218] Ruby Equivalent to VB's "With"? — Joel Pearson <lists@...>

I've looked around but I couldn't find anything helpful on this,

11 messages 2013/02/10

[#404235] The "ruby way" to do desktop applications? — "guirec c." <lists@...>

Hello,

17 messages 2013/02/11

[#404238] Best books for "advanced" programmers — "guirec c." <lists@...>

Hello,

18 messages 2013/02/11

[#404245] Issue with Excel column values read. — Love U Ruby <lists@...>

Hi,

22 messages 2013/02/11

[#404344] Ruby command line options s and S — Love U Ruby <lists@...>

Can anyone help me to understand the difference between s and S with

15 messages 2013/02/13

[#404386] Re: Ruby command line options s and S — "D. Deryl Downey" <me@...>

Dude!

20 messages 2013/02/14

[#404387] Ruby Multithreaded producer-consumer problem — Abhijit Sarkar <lists@...>

Hi,

26 messages 2013/02/14
[#404896] Re: Ruby Multithreaded producer-consumer problem — Abhijit Sarkar <lists@...> 2013/02/24

Bump!

[#404456] skip iteration in each loop — Saurav Chakraborty <lists@...>

I want to skip iteration for few values depending on dynamic condition.

11 messages 2013/02/15

[#404491] so, what's the proper way to replace funcionality of GOTO ? — "Stu P. D'naim" <lists@...>

I need to make few scripts for tasks I do often manually, but last time

27 messages 2013/02/15
[#404492] Re: [from BASIC to Ruby] so, what's the proper way to replace funcionality of GOTO ? — Love U Ruby <lists@...> 2013/02/15

Stu P. D'naim wrote in post #1097111:

[#404494] Re: [from BASIC to Ruby] so, what's the proper way to replace funcionality of GOTO ? — Ryan Victory <ryan@...> 2013/02/15

Love U Ruby: I'm really not sure what you meant by that response, but

[#404570] What is Ruby's default constructor? — Love U Ruby <lists@...>

Hi,

12 messages 2013/02/17

[#404632] Re: splat operator and Ruby instance variable assignments — Marc Heiler <lists@...>

Ok, understood what the guy wants ...

17 messages 2013/02/19
[#404640] Re: splat operator and Ruby instance variable assignments — Love U Ruby <lists@...> 2013/02/19

Marc Heiler wrote in post #1097736:

[#404645] Re: splat operator and Ruby instance variable assignments — Ryan Davis <ryand-ruby@...> 2013/02/19

[#404646] Re: splat operator and Ruby instance variable assignments — Love U Ruby <lists@...> 2013/02/19

Ryan Davis wrote in post #1097840:

[#404647] Re: splat operator and Ruby instance variable assignments — Peter Hickman <peterhickman386@...> 2013/02/19

On 19 February 2013 20:35, Love U Ruby <lists@ruby-forum.com> wrote:

[#404648] Re: splat operator and Ruby instance variable assignments — Love U Ruby <lists@...> 2013/02/19

Peter Hickman wrote in post #1097848:

[#404696] THE CLASS/OBJECT CHICKEN-AND-EGG PARADOX — "Xavier R." <lists@...>

Hi,

25 messages 2013/02/20
[#404699] Re: THE CLASS/OBJECT CHICKEN-AND-EGG PARADOX — Matt Mongeau <halogenandtoast@...> 2013/02/20

Maybe you could provide more detail about what you are confused about. To

[#404700] Re: THE CLASS/OBJECT CHICKEN-AND-EGG PARADOX — "Xavier R." <lists@...> 2013/02/20

Matt Mongeau wrote in post #1098058:

[#404705] Re: THE CLASS/OBJECT CHICKEN-AND-EGG PARADOX — Matt Mongeau <halogenandtoast@...> 2013/02/20

It's not really a paradox. Take for example

[#404738] backslash substitution — Mario Ruiz <lists@...>

don't know why... but this is not working

18 messages 2013/02/21

[#404809] Difference of 2 dates interms of years. — "Xavier R." <lists@...>

how can we get the experience years between two dates(ex:2012-01-11 to

13 messages 2013/02/22

[#404817] Not able to understand the difference between "||=" and "|=". — "Xavier R." <lists@...>

>> a = []

12 messages 2013/02/22

[#404839] range is not assigning to the splat variable. — Love U Ruby <lists@...>

Why splat variable couldn't take in the below two code the "range" ->

10 messages 2013/02/23

[#404842] Why class returning its own name when "include" statement? — Love U Ruby <lists@...>

I was actually playing around with the class definition return values.

16 messages 2013/02/23
[#404844] Re: Why class returning its own name when "include" statement? — Love U Ruby <lists@...> 2013/02/23

@Stefano Yes you are right. The below code is proved that.

[#404867] how to see the class creation time in Ruby? — Love U Ruby <lists@...>

In Ruby any chance to see the last-modified time of a specific class?

15 messages 2013/02/23

[#404901] Confusion with `nil` value being produced by IRB in case of Array#size manipulation. — Love U Ruby <lists@...>

enum[int] =3D obj =E2=86=92 obj

10 messages 2013/02/24

[#404921] How should I print only the last combination when using Array#combination(n) ? — Love U Ruby <lists@...>

>> a = [1,2,3]

15 messages 2013/02/24

[#405026] Please, help (GCD) greatest common divisor. — Caddy Tonks Lupin <lists@...>

Write a program to read two integers and show their greatest common

17 messages 2013/02/26

[#405059] Does this specific sound library exist? — Dirk Vogel <lists@...>

Hi there,

16 messages 2013/02/26

[#405067] Mac OS 10.8.2 and openssl — "Dr. Hegewald" <hegewald@...>

Hi everybody,

24 messages 2013/02/27

[#405079] Why `10` not returned without the `return` from the block ? — Love U Ruby <lists@...>

CODE - I

10 messages 2013/02/27

[#405107] Object track llist for a particular class. — "Xavier R." <lists@...>

Say I have created more than one instances from a particular class as

13 messages 2013/02/27

[#405145] Discussion on Ruby's `alias` — Tukai Patra <lists@...>

>> class Foo

27 messages 2013/02/28

[#405175] telnet - how to loop through commands listed in a file — Bob Ford <lists@...>

Let me first explain what I'm trying to do. I have written a very

18 messages 2013/02/28

Re: Fun with finalizers

From: Garthy D <garthy_lmkltybr@...>
Date: 2013-02-16 11:08:31 UTC
List: ruby-talk #404536
Hi Matthew,

Excellent thinking. I also thought it might be something along those 
lines too. I tried various combinations as well: proc, Proc.new, I think 
a return from method(), calls to a separate object; but there was no 
impact on the result. If "a" isn't cleared, the object is held. I'm 
guessing that there might be some way to say to not touch a thing in the 
current scope, but I'm not sure *how* to specify it.

I also adapted the main program based on my experience with the code 
below, and suddenly the finalizers were called. So it's the same type of 
problem.

So there's a problem, and it's avoidable. I know the "what", but don't 
know the "why". There is some subtlety I'm missing. Most interesting. :)

Cheers,
Garth

On 16/02/13 20:30, Matthew Kerwin wrote:
> Quick guess, it's the lambda. Replace it with #proc and try again?
>
> Sent from my phone, so excuse the typos.
>
> On Feb 16, 2013 4:39 PM, "Garthy D"
> <garthy_lmkltybr@entropicsoftware.com
> <mailto:garthy_lmkltybr@entropicsoftware.com>> wrote:
>
>
>     Hi all,
>
>     Just ran into something very interesting with finalizers. I've found
>     a workaround (it'll be obvious what it is from the code below), but
>     I just thought I'd share it for discussion's sake.
>
>     Consider the code below:
>
>     $fcount = 0
>
>     class A
>        def initialize
>        end
>     end
>
>     class B
>
>        def initialize
>        end
>
>        def bar a
>          ObjectSpace.define_finalizer(__a, lambda {|oid| $fcount += 1})
>          a = nil # xxx
>          nil
>        end
>
>        def foo
>
>          a = A.new
>          bar a
>          nil
>        end
>     end
>
>     b = B.new
>     for i in 1 .. 10000
>        GC.start
>        b.foo
>        GC.start
>     end
>     $stderr.print "Program ends. #{$fcount} finalizers called.\n"
>
>     All but one of the finalizers run at the point of the trace.
>
>     Now, comment the line marked with xxx. This shouldn't make any
>     difference- but it does. The program will report that 0 finalizers
>     ran at the point of the trace. You can confirm that the rest did
>     run, but they *only* ran at program exit, after the trace.
>     Basically, the resources are never released when finalizers are
>     used. This is a big problem in a long-running program.
>
>     If 10000 iterations isn't enough, you can always increase the counter.
>
>     Note that I am using Ruby 1.9.2p136, Linux. Other versions may
>     behave differently.
>
>     Why the code above? I was noticing in my code that finalizers were
>     *never* being run under any circumstances. The above is a
>     stripped-down set of code that acts similarly to mine.
>
>      >From a bit of research online, I've seen comments that say
>     sometimes values are left in registers, which affects GC. That seems
>     fair enough in general- but not here. There are 10000 objects here
>     that aren't being finalized- they're not in all in registers. If
>     it's the stack, then the first run should also have failed. It's not
>     the return value, this is nil. It's not the parameter coming in, the
>     first test would have failed.
>
>     Is it the current scope? I have a feeling that, based on the one
>     line change I made, that the current scope is somehow being captured
>     by the finaliser, so that if "a" remains set, the finaliser holds on
>     to it, and the object is never released. That's just my theory- I
>     could be wrong. This situation is particularly bad if you want to
>     set up a finaliser and then immediately return the value (say, as a
>     result of caching a value)- the finaliser will never be called,
>     because you can't clear the value before returning it.
>
>     If you've followed me so far, you can probably guess the workaround-
>     call a separate method to set the finaliser, and clear the parameter
>     afterward in that call, then return to the caller with a nil return
>     value. It's annoying, but not too painful.
>
>     What I am incredibly curious about is why this happens in the first
>     place- and why there doesn't seem too much talk of this specific
>     problem when using finalizers online. Finalizers failing to work
>     when used in the current scope without explicitly clearing the
>     object afterward seems like the sort of problem other people should
>     be running into more often.
>
>     It's bizarre. I'm wondering what everyone else thinks of it. Have I
>     missed something?
>
>     Garth
>


In This Thread