From: han.holl@... (Han Holl) Date: 2004-07-07T03:32:41+09:00 Subject: Druby and garbage collection Hello, I must be doing something quite wrong, but I'm stumped by this: The server: require 'drb' class Server def pgproxy return DatabaseProxy.new end end class DatabaseProxy include DRbUndumped def exec(q, *methods) a = Array.new(10000) STDERR.puts "Created #{a.object_id}"; STDERR.flush ObjectSpace::define_finalizer(a, proc {|id| STDERR.puts "Finalizer #{id}"; STDERR.flush } ) a end def gc GC.start end end DRb.start_service("drbunix:/tmp/testdrb", Server.new) DRb.thread.join ### end of server.rb And the client: require 'drb' DRb.start_service b = DRbObject.new(nil, "drbunix://tmp/testdrb").pgproxy 100.times do a = b.exec('aa') end b.gc ### end of client.rb If I run them I don't see any garbage collection going on in the server process, and the process size grows considerably. Who is holding references to these arrays ? Thanks in advance for any light shed on this. Cheers, Han Holl