[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11354] Any way to control order in which objects are GC'd?

From: "Lyle Johnson" <ljohnson@...>
Date: 2001-02-22 22:10:05 UTC
List: ruby-talk #11354
I fear that I already know the answer, but I'll go ahead and ask. But first,
the setup.

The problem is that for the Ruby extension module I'm working on, I'm
wrapping C++ objects that can have references (pointers) to other C++
objects. To avoid a problem of dangling pointers with circular references,
one would typically use this kind of pattern in the C++ class destructor:

    // Destructor for SomeClass
    SomeClass::~SomeClass() {
        // clean up all outstanding pointers to me, because I'm about
        // to be destroyed!
    }

Ruby, of course, doesn't have the concept of C++ destructors. When the GC
detects that an object is no longer in use, it will get "collected". So the
problem I'm running into is that when object "Foo" gets garbage collected
(and the underlying C++ object "CFoo" is destroyed), there are still other
C++ objects out there that  have references to "CFoo". As soon as they try
to access the recently deceased object, bad things happen.

So the question is, is there any way to control the order in which objects
get garbage-collected? For the current problem I'm debugging, all of this
action is taking place when the Ruby interpreter shuts down. For those
familiar with the source code, I'm looking at the function
"rb_gc_call_finalizer_at_exit()", which is defined in gc.c. The second loop
in this function loops over all the data objects and GC's them in an
arbitrary order.

Any suggestions are welcome...


In This Thread

Prev Next