S
Sam Sungshik Kong
Hello!
While I was making my own utility functions, I met an interesting situation.
I want to know how to solve this kind of problem.
I want to use Excel from ruby using OLE.
To make steps simple, I created functions to open excel and close it.
get_excel function has no problem.
I call it like
xl = get_excel
When I'm done with it, I want to close it and unload it from memory.
The right procedure is
xl.quit
xl = nil
GC.start
I want to make a function for the 3 steps.
def quit_excel(xl)
xl.quit
xl = nil
GC.start
end
When I call it, I do
quit_excel(xl) #don't work as expected
As you know, the argument is call-by-value and even if I set nil to xl, the
outer reference is still referencing Excel.
So GC won't collect it.
How can I solve this problem?
Thanks in advance.
Sam
While I was making my own utility functions, I met an interesting situation.
I want to know how to solve this kind of problem.
I want to use Excel from ruby using OLE.
To make steps simple, I created functions to open excel and close it.
get_excel function has no problem.
I call it like
xl = get_excel
When I'm done with it, I want to close it and unload it from memory.
The right procedure is
xl.quit
xl = nil
GC.start
I want to make a function for the 3 steps.
def quit_excel(xl)
xl.quit
xl = nil
GC.start
end
When I call it, I do
quit_excel(xl) #don't work as expected
As you know, the argument is call-by-value and even if I set nil to xl, the
outer reference is still referencing Excel.
So GC won't collect it.
How can I solve this problem?
Thanks in advance.
Sam